最近用delphi写了一个小软件,在连接数据库的时候,有可能出现数据库服务器未开启或者数据库服务器突然断开了。是不是我在每一个调用的sql语句中都要捕获异常啊?该怎么做?
    我现在的做法是:
      try
       QryTmp.ExecSql;
     except
       Application.MessageBox(PChar('数据库连接失败...请查看数据库连接是否正常...!'),PChar('警告'),MB_OK +       MB_ICONWARNING);
     end;
    但是每执行一个sql都写一遍太麻烦了啊?该怎么做啊?而且如何正确捕获?谢谢大家指点!

解决方案 »

  1.   

    try 
          QryTmp.ExecSql; 
        except 
          Application.MessageBox(PChar('数据库连接失败...请查看数据库连接是否正常...!'),PChar('警告'),MB_OK +      MB_ICONWARNING); 
        end; 吧这个放进一个过程,调用该过程。
      

  2.   

    try 
          QryTmp.ExecSql; 
        except 
          Application.MessageBox(PChar('数据库连接失败...请查看数据库连接是否正常...!'),PChar('警告'),MB_OK +      MB_ICONWARNING); 
        end; 吧这个放进一个过程,调用该过程。
      

  3.   


    try 
      QryTmp.ExecSql; 
    except 
      on e:Exception do
      begin
      Application.MessageBox(PChar('数据库连接失败...请查看数据库连接是否正常...!错误信息:'+e.Message),PChar('警告'),MB_OK +      MB_ICONWARNING); 
      end;
    end;
      

  4.   


    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;
      

  5.   

    检查:Connection
    检查:SQL代码
    检查:Query先前执行有没有关闭
    检查:Query赋查询串之前有没有clear