求助:数据库更新问题。谢谢各位大侠!!!
我编写了个C/S架构程序,服务端是采用了adoquery和datasetprovider两个控件处理数据库操作,利用datasetprovider的datarequest事件接受客户端发送的命令。我在客户端使用socketconnection连接服务端,通过clientdataset的datarequest传递sql命令,命令执行都没有问题。我现在想对数据库更新完毕后,如果接收到执行成功,立即在dbgrid中显示更新后的数据库。程序如下:服务端代码:
DataSetProviderDataRequest(Sender: TObject;
Input: OleVariant): OleVariant;
begin
try
with adoquery do
begin
Close;
SQL.Clear;
SQL.Add(input);
ExecSQL ;
result:='ok';
end;
except
result:='false' ;
end;
end;
客户端代码:
clientdataset1.Close;
fhz:=clientdataset1.DataRequest(sql的update命令) ;
clientdataset1.Execute;
if fhz='ok' then
begin
application.messagebox('修改成功','操作提示',MB_OK);
此处为重新显示更新后数据库代码
end
else
application.messagebox('修改失败','操作提示',MB_OK);
但是收到修改成功提示后,如果点击确认按钮速度快,数据库没有立即更新(有事也会很快显示更新后数据库)。过个几秒钟,再通过查询命令可以显示更新后数据库。不知是什么原因?是不是数据库没有真正更新完毕,怎样判断数据库是否更新完毕?谢谢各位大侠!!!