首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

三层架构下无法更新数据的有关问题

2014-01-14 
三层架构下无法更新数据的问题。服务端采用delphi自带的scktsrvr.exe程序。服务端没问题。客户端采用 SocketC

三层架构下无法更新数据的问题。
服务端采用delphi自带的scktsrvr.exe程序。服务端没问题。
客户端采用 SocketConnection + ClientDataSet 调试没问题。
此时,SocketConnection 是设置的属性。
可以更改数据库,任何操作都无问题。

修改代码

type
  TDM = class(TDataModule)
    conn: TSocketConnection;
。。。
procedure TDM.DataModuleCreate(Sender: TObject);
begin
  if not conn.Connected then
  begin
    try
      ini := TIniFile.Create(ExtractFilePath(Paramstr(0)) + 'config.ini');
      conn.Port := ini.ReadInteger('Server', 'port', 211);
      conn.Host := ini.ReadString('Server', 'IP', '127.0.0.1');
      conn.ServerGUID := ini.ReadString('Server', 'GUID', '{BE997A7C-4DDD-4E91-8E4E-5103E277B9C5}');
      conn.ServerName:=ini.ReadString('Server','sevName','prjServer.RDMServer');
      conn.Open;
      ini.Free;
    except
      MessageBox(0,'请重新配置config.ini文件!','服务器连接失败',MB_ICONHAND+MB_OK );
      Application.Terminate;
    end;
  end;
end;

采用ini文件读取服务器配置。
启动程序

数据浏览正常,修改数据也能看到,关闭窗口后再打开,数据又恢复了。
在sql中查询后得知,在界面中虽然看到数据已被修改,但未更新到数据库中。
将 SocketConnection 改回属性设置后 程序又正常了.

请问这种问题该如何解决?因为需要连接不同的数据库 所以需要在客户端设置服务器地址等信息。
[解决办法]
你服务端的代码是怎么写的,单纯从这个配置文件,看不出什么问题。
[解决办法]
跟踪一下通过读配置文件得到的参数是否   与   直接设置属性是一样的   按理说如果完全一样,不应该出现这种情况
[解决办法]
告诉你,三层下不能使用ApplyUpdates(),更新数据。我度过,只有瓣增的数据,可以通过ApplyUpdates更新数据,原有数据,不能更新。如果要更新,请的SQL语句,逐条更新。

热点排行