最近用delphi写了一个小软件,在连接数据库的时候,有可能出现数据库服务器未开启或者数据库服务器突然断开了。是不是我在每一个调用的sql语句中都要捕获异常啊?该怎么做?
我现在的做法是:
try
QryTmp.ExecSql;
except
Application.MessageBox(PChar('数据库连接失败...请查看数据库连接是否正常...!'),PChar('警告'),MB_OK + MB_ICONWARNING);
end;
但是每执行一个sql都写一遍太麻烦了啊?该怎么做啊?而且如何正确捕获?谢谢大家指点!
我现在的做法是:
try
QryTmp.ExecSql;
except
Application.MessageBox(PChar('数据库连接失败...请查看数据库连接是否正常...!'),PChar('警告'),MB_OK + MB_ICONWARNING);
end;
但是每执行一个sql都写一遍太麻烦了啊?该怎么做啊?而且如何正确捕获?谢谢大家指点!
QryTmp.ExecSql;
except
Application.MessageBox(PChar('数据库连接失败...请查看数据库连接是否正常...!'),PChar('警告'),MB_OK + MB_ICONWARNING);
end; 吧这个放进一个过程,调用该过程。
QryTmp.ExecSql;
except
Application.MessageBox(PChar('数据库连接失败...请查看数据库连接是否正常...!'),PChar('警告'),MB_OK + MB_ICONWARNING);
end; 吧这个放进一个过程,调用该过程。
try
QryTmp.ExecSql;
except
on e:Exception do
begin
Application.MessageBox(PChar('数据库连接失败...请查看数据库连接是否正常...!错误信息:'+e.Message),PChar('警告'),MB_OK + MB_ICONWARNING);
end;
end;
function ExecSQL(Str:String):string; //返回成功与否 自己改改 写成过程也可以
ADOset:TADOQuery;
begin
ADOset:=TADOQuery.Create(Nil);
ADOset.Connection:=FrmDM.adoDB;
With ADOset do begin
Close;
SQL.Clear;
SQL.Add(Str);
end;
try
ADOset.ExecSQL ;
Result:='成功!'
except
Result:='失败!'
Application.MessageBox(PChar('数据库连接失败...请查看数据库连接是否正常...!'),PChar('警告'),MB_OK + MB_ICONWARNING);
end;
end;
检查:SQL代码
检查:Query先前执行有没有关闭
检查:Query赋查询串之前有没有clear