使用Adoconnection连接SqlServer数据库,数据库重启,网络异常(比如拔了网线又插上),运行着的程序如果执行数据库操作则会出现 Connection failure错误,我不想关了程序再重新运行,也不想在每执行一个数据库操作都用Try ... Except ...End 在Except部分执行Adoconnection.Close;Adoconnection.Open;这两句来解决,因为这是事后补救,而且这种办法可以在Adoconnection的OnExecuteComplete事件中做控制,还不用在每个数据库操作去补加,比如
if SameText(Error.Description,'Connection Failure') then
begin
ADOConnection1.Close;
ADOConnection1.Open;
end;
我想要事前解决掉,意思就是我程序运行着,如果发生(数据库重启,拔了网线又插上)类似情况,程序能一次都不报Connection failure错误,象没发生过一样。Adoconnetion的OnInfoMessage是捕捉不到这个错误的。各位大仙帮帮忙啊
if SameText(Error.Description,'Connection Failure') then
begin
ADOConnection1.Close;
ADOConnection1.Open;
end;
我想要事前解决掉,意思就是我程序运行着,如果发生(数据库重启,拔了网线又插上)类似情况,程序能一次都不报Connection failure错误,象没发生过一样。Adoconnetion的OnInfoMessage是捕捉不到这个错误的。各位大仙帮帮忙啊
2、除了每处用异常处理外,可以尝试在Application.OnException,即全局异常中统一处理
跟长连接不长连接没有关系吧?因为Ado一旦连过一次后它就自己保持连接状态,除非每次执行完数据库操作就将连接Close,这样效率损失太大吧?
三层中也是有这种问题的吧?我就是在三层中碰到这种问题了,请问三层中如何设置能避免这种问题?
SELECT 1 AS FieldName FROM TableName WHERE 1=2
當沒有網絡時,數據暫存在本地;待網絡暢通時直接傳到SQL上;當你重啟後,給你一個caption提示或顯示出來提示的信息即可;這樣數據才會即時和實時,根本不會出現你所說的這樣問題這是程序技術方法問題,根本不會影響程序或數據庫的效率...
當沒有網絡時,數據暫存在本地;待網絡暢通時直接傳到SQL上;當你重啟後,給你一個caption提示或顯示出來提示的信息即可;這樣數據才會即時和實時,根本不會出現你所說的這樣問題這是程序技術方法問題,根本不會影響程序或數據庫的效率...