三层架构下无法更新数据的问题。
独醒子 2013-04-25 10:23:32 服务端采用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 改回属性设置后 程序又正常了.
请问这种问题该如何解决?因为需要连接不同的数据库 所以需要在客户端设置服务器地址等信息。