Delphi有没有断线重连的最好方案?? 有没有象ADO.net一样的解决方案呢???Ado好象必须是连接的,如果中途断了,程序就要重启的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 引用 12 楼 xuxugr 的回复: ADOQUERY1.Connection:=nil; try adoConnection1.Close; adoConnection1.Open; ADOQUERY1.Connection:=adoConnection1; ADOQUERY1.UpdateBatch(); except showMessage(GetErrorInfo); //提示出错信息 end; 用这种方法解决不少问题 每次还是ping一样网络,如果成功就不必要,如果不成功就再执行以上代码 这样想保存的数据也不会丢失,我刚也遇到这样的问题,对方是用的无线路由器的引起 很想知道如何利用时钟来控制休眠sleep(500)?procedure TForm2.Timer4Timer(Sender: TObject); var strError:string; ConnStr,ServerIp:string; tmpStrList :TStringList; Const CONNECTABORT_SQLSERVER1 = '08S0 '; //连接失败的错误号(SQLSERVER) 在简体版本下,显示不出最后一位 CONNECTABORT_SQLSERVER2 = '08S01'; //连接失败的错误号(SQLSERVER) CONNECTFAULT_SQLSERVER = '08001'; //连接不上服务器的的错误号(SQLSERVER) begin if Form1.ADOConnection1.Errors.Count >0 then begin strError := Form1.ADOConnection1.Errors.Item[0].SQLState; if (strError = CONNECTABORT_SQLSERVER1)or(strError = CONNECTABORT_SQLSERVER2)or(strError = CONNECTFAULT_SQLSERVER) then begin Timer2.Enabled := false; Timer3.Enabled := false; ConnStr := Form1.ADOConnection1.ConnectionString; tmpStrList := Common.SplitString(ConnStr,';'); ServerIp := tmpStrList.Values['Data Source']; tmpStrList.Free; if PingServer(ServerIp) then begin Form1.ADOConnection1.Connected := false; Try Form1.ADOConnection1.Open; Timer2.Enabled := true; Timer3.Enabled := true; Except end; end; end; end; end;这里如何来控制休眠,在哪进行修改,演示一下 标准化日期格式,如何做? dx(D3D) 游戏窗口问题 高手在你在那呢 100分等您啊 老问题了。随机数。有段代码,请大家看看。 开发一个对拨号情况进行统计的软件,如何实现pppoe自动拨号? 一个奇怪的问题 大家好,请教一个简单问题。不要笑我。:( MSN 8.0 Password Finder 的源碼問題 在这里提问有限制吗?怎么老是失败? 此单提交后我再打不开,能否新建单子答复,多谢! Delphi报表分列问题 多线程的中堆栈溢出的问题 求Delphi的学习策略及书籍 建个COM对象,其中一个函数的传人参数要是Pointer,在TypeLibrary中应该怎么设置。
ADOQUERY1.Connection:=nil;
try
adoConnection1.Close;
adoConnection1.Open;
ADOQUERY1.Connection:=adoConnection1;
ADOQUERY1.UpdateBatch();
except
showMessage(GetErrorInfo); //提示出错信息
end;
用这种方法解决不少问题
每次还是ping一样网络,如果成功就不必要,如果不成功就再执行以上代码 这样想保存的数据也不会丢失,我刚也遇到这样的问题,对方是用的无线路由器的引起
很想知道如何利用时钟来控制休眠
sleep(500)?
procedure TForm2.Timer4Timer(Sender: TObject);
var
strError:string;
ConnStr,ServerIp:string;
tmpStrList :TStringList;
Const
CONNECTABORT_SQLSERVER1 = '08S0 '; //连接失败的错误号(SQLSERVER) 在简体版本下,显示不出最后一位
CONNECTABORT_SQLSERVER2 = '08S01'; //连接失败的错误号(SQLSERVER)
CONNECTFAULT_SQLSERVER = '08001'; //连接不上服务器的的错误号(SQLSERVER)
begin
if Form1.ADOConnection1.Errors.Count >0 then
begin
strError := Form1.ADOConnection1.Errors.Item[0].SQLState;
if (strError = CONNECTABORT_SQLSERVER1)or(strError = CONNECTABORT_SQLSERVER2)or(strError = CONNECTFAULT_SQLSERVER) then
begin
Timer2.Enabled := false;
Timer3.Enabled := false; ConnStr := Form1.ADOConnection1.ConnectionString;
tmpStrList := Common.SplitString(ConnStr,';');
ServerIp := tmpStrList.Values['Data Source'];
tmpStrList.Free; if PingServer(ServerIp) then
begin
Form1.ADOConnection1.Connected := false;
Try
Form1.ADOConnection1.Open;
Timer2.Enabled := true;
Timer3.Enabled := true;
Except
end;
end;
end;
end;
end;
这里如何来控制休眠,在哪进行修改,演示一下