为什么同一个存储过程调用被多次触发

本文关键字:同一个 存储过程 调用 为什么 | 更新日期: 2023-09-27 18:27:28

在我的网页中,当我添加一条记录时,一些记录会被多次添加。然后我发现同一个DB调用被发送了不止一次(在分析时)。不仅是该SP,还有其他一些SP。但他们只是在返回数据。所以他们没有造成任何问题。但这种行为只存在于生产现场。不在开发现场。因此,很难跟踪SP调用的来源。我检查了循环和其他东西,但没有。

以下是javascript文件中的HTTP请求:

var strParams = "?";
strParams += "Process="           + "assignQuestion";                               
...
strParams += "&measure="          + measure;
xmlAssignQuestion = new ActiveXObject("Microsoft.XMLHTTP");
xmlAssignQuestion .onreadystatechange = assignQuestionBack;
xmlAssignQuestion .open("POST", "AssignQuestion.reliability" + strParams, false);
xmlAssignQuestion .send();

这是HTTP处理程序

if (process.Equals("assignQuestion"))
{
    int measure = int.Parse(context.Request.QueryString["measure"]);
    string ret = DBClasses.AssignToGroup.storeQuestionp(measure);
    if (long.Parse(ret) == -1)
        context.Response.Write("f");
    else context.Response.Write(ret);
    context.Response.Flush();
    context.Response.End(); 
}

提前感谢!

为什么同一个存储过程调用被多次触发

为了防止生产数据损坏,我会在适当的列组合中添加一个唯一的约束,以确保不会出现重复。添加约束后,下次客户端操作尝试插入重复项时,它们将收到一个错误,这将有助于识别导致该错误发生的情况。