首页  编辑  

三层结构的更新数据问题

Tags: /超级猛料/Database.数据库相关/SQL Server/   Date Created:

]、。·ˉˇ¨〃々—~‖…’”〕〉》」』〗】∶!"'),.:;?]` 应用服务器上使用TQuery作为TDataprovider的DATASET,使用自动生成SQL更新

用户端APPLYUPDATES后,在应用服务器上可以看到传过来得数据,并触发了BEFORE

UPDATEDATA,但数据库没有得到更新,为什么!!

我用多层的时候也是遇这问题,ClientDataSet将服务端的数据是下载过来,其它的事件就在本机上工作了,就好像它是一个临时的DataSet存储了服务端的数据。所以当别人更新时,服务器的记录已经更新,但是在另外客户端并不会。

 我想这样或可解:

 再加入ServerSocket(Server端),ClientSocket(Client端),当服务端AfterUpdateData中

写入:

 for i:=0 to Client_Number-1 do

 begin

   ServerSocket.Socket.Connections[i].SendText('Client Refresh');

 end;

在Client端中的ClientSocket的OnRead事件中:

var str:string;

begin

   str:=Socket.ReceiveText;

   if str='Client Refresh' then

   begin

     ClientDataSet.Close;

     ClientDataSet.CommandText:='select * from table';

     ClientDataSet.Open;

   end;

end;

Are you OK?