程序流程是:
try
StoredProc2.ProcedureName:='sf_User_Insert;1';//指定相关的存储过程名
StoredProc2.Parameters.Refresh; //刷新并传递参数
StoredProc2.Parameters.ParamByName('@MagCard_ID').Value:=EdiCard.Text;
StoredProc2.Parameters.ParamByName('@User_Name').Value:=Edit1.Text;
.
.
.
.
StoredProc2.ExecProc;//执行存储过程
StoredProc2.Close;//-----------------------------------------------------------------
//打印代码略
//------------------------
except
StoredProc2.Parameters.Clear;;//清除存储过程参数
StoredProc2.Close;
MessageDlg('数据更新失败,请重新输入', mtWarning, [mbOK], 0);
end;
finally
EdiCard.Clear; //清理相关的参数
.
.
.
FloatEdit6.Value:=0;
StoredProc2.Parameters.Clear;//清除存储过程参数
end;
上面代码是放在按钮事件里的.可以看出每次执行后相关的参数就被清除了,
再点击按钮必须得重新输入参数才可以.
问题是在快速操作时,随机的就会有一条记录被insert两条一模一样的.不知为什么?
try
StoredProc2.ProcedureName:='sf_User_Insert;1';//指定相关的存储过程名
StoredProc2.Parameters.Refresh; //刷新并传递参数
StoredProc2.Parameters.ParamByName('@MagCard_ID').Value:=EdiCard.Text;
StoredProc2.Parameters.ParamByName('@User_Name').Value:=Edit1.Text;
.
.
.
.
StoredProc2.ExecProc;//执行存储过程
StoredProc2.Close;//-----------------------------------------------------------------
//打印代码略
//------------------------
except
StoredProc2.Parameters.Clear;;//清除存储过程参数
StoredProc2.Close;
MessageDlg('数据更新失败,请重新输入', mtWarning, [mbOK], 0);
end;
finally
EdiCard.Clear; //清理相关的参数
.
.
.
FloatEdit6.Value:=0;
StoredProc2.Parameters.Clear;//清除存储过程参数
end;
上面代码是放在按钮事件里的.可以看出每次执行后相关的参数就被清除了,
再点击按钮必须得重新输入参数才可以.
问题是在快速操作时,随机的就会有一条记录被insert两条一模一样的.不知为什么?
try
...
finally
...
yourbutton.enabled :=True;
end;