问题起源:最近服务器老自动重新启动,客户机输了很多资料,最后要保存的时候,不能保存,提示RPC服务器不可用,因为服务器重新启动了。这个时候客户机必须退出程序再进一次软件,才能重新连接上服务器,但输入的那些资料已经全部丢失,必须重新输入才行。提出问题:请问有没有办法让客户机在不用退出客户端软件的情况下自动重新连接服务器?这样输入的资料就可以保存了。请大侠们帮帮我,客户机操作员对我都有意见了,他们重新输入资料几遍了。有没有相关的代码?
解决方案 »
- 有关Paradox数据的问题向各位大侠请教了
- assign(f,str)它返回什么类型啊?如何判断文件的有和无呢?
- 问: 一个窗体如果正在做很多事情的话,鼠标再去操作的话窗体就就白过来,像outlook之类没有这个问题,怎么处理的?
- 定位窗口
- socket救急!
- 我只想选取一个目录而已,用OpenDialog控件吗?快
- 弱智问题
- ADO错误:BOF或EOF中有一个时“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录?
- 在delphi中如何判断有没有默认的 打印机?
- 谁能提供一个好的序列号的生成算法,很着急!!!!!!!!详细一点,就这些分,一定加分!
- 同時開啟兩個用BDE編寫的程序時發生內存不足的問題
- TImageList中放入21张图片,最后5张为什么不能显示?
比如:
try
首先判断连接是否正常,否则重新建立连接;
更新数据的代码;
finally
提示错误;
end
这样,如果无法连接服务器,程序会提示用户,用户可以过一会再尝试保存数据,而不用重新启动客户端程序。
如果想让程序自动去连接,让一个定时器自己去判断吧。
TDataModule1.DCOMConnection1AfterDisconnect方法还是在DCOMConnection1BeforeDisconnect方法里面加好?
try
.....
使用系统资源
finally
释放系统资源
在系统除措时,可以释放占有的资源
XLYT(雨田) :
try
首先判断连接是否正常,否则重新建立连接;
更新数据的代码;
except
提示错误;
end
'User ID='+Trim(userName)+
';Initial Catalog='+Trim(DBName)+
';Data Source='+Trim(ServerName);
try
With DM.ADO do
begin
ConnectionTimeout := 1;
ConnectionString := GrlStrConnection;
LoginPrompt := FALSE;
Open;
end;
我自己的代码。
Persist Security Info=True;'+
'User ID='+Trim(userName)+
';Initial Catalog='+Trim(DBName)+
';Data Source='+Trim(ServerName);
try
With DM.ADO do
begin
ConnectionTimeout := 1;
ConnectionString := GrlStrConnection;
LoginPrompt := FALSE;
Open;
end;
except
Showmessage('数据库连接失败。' + #13 + '请检查数据库配置信息!');
_FormModifySever:=T_FormModifySever.Create(application);
_FormModifySever.ShowModal;
Application.Terminate;
end;
在主連接控件的OnPostError的事件呀,如果收到無法連接的錯誤就啟動計時器每10秒重連一次,
或是通過ClientDataSet1.SaveToFile();保存成xml文件關閉程序并重菥打開,然後用ClientDataSet1.LoadfromFile();
这个控件有AfterConnect,AfterDisconnect,BeforeConnect,BeforeDisconnect等等方法.