数据库都关了客户端报错正常,不报错还照样用才见鬼了,要非要自动连接那么试试看这个代码,中间层建议用DBExpress,比BDE,ADO快很多很多。
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if not ADOConnection1.Connected then
begin
ADOConnection1.Connected:= true;
ADOQuery1.Connection:= ADOConnection1;
DataSetProvider1.DataSet:= ADOQuery1;
end;
end;
在ONexecutecomplete事件里面判断ERROR是否存在,如果存在,再判断它的错误代码是不是
断开,如果是,则关闭ADOCONNECTION,在ADOQUERY执行SQL的时候,它会自动重连
if assigned(error) then
if error.errornumber = xxxx then
connection.close;
自己测试看看错误代码是多少, 我的中间层就是这样改的