刚学delphi,有个问题请教一下:以下是部分代码:
procedure TMain.FormCreate(Sender: TObject);
VAR
  cnnSTR:STRING ;
begin
  cnnSTR:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;password=1213;Initial Catalog=SIMManger;Data Source=MSHZJF';
  cnn.LoginPrompt :=False;
  cnn.ConnectionString:=cnnSTR;
  cnn.ConnectionTimeout:=10;
  try
   cnn.Open;       //这里出现错误后直接就出现了系统级的错错误对话框,提示用户名密码错误;
   except
    Application.MessageBox('用户名密码错误','错误',MB_ICONINFORMATION+MB_OK);
   end;end
我是按以上方法做的,但是如果用户名密码错误,每次cnn.open后就出现错误,然后才执行application.messagebox的错误.
也就是说这种错误提示了两次,现在我的意思是不让它出现系统自定义的错误,直接执行我自定义的错误
各位老大有没有好点的办法.先谢谢了!

解决方案 »

  1.   

    在delphi调试环境下是会出现两次错误的,可以直接运行可执行文件试试。如果还有两次错误的话在Application.MessageBox语句后加入Application.Terminate;
      

  2.   

    procedure TMain.FormCreate(Sender: TObject);
    VAR
      cnnSTR:STRING ;
    begin
      cnnSTR:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;password=1213;Initial Catalog=SIMManger;Data Source=MSHZJF';
       try
        cnn.LoginPrompt :=False;
        cnn.Connection:=false;
        cnn.ConnectionString:=cnnSTR;
        cnn.ConnectionTimeout:=10;
        cnn.Connection:=True;
       except
        Application.MessageBox('用户名密码错误','错误',MB_ICONINFORMATION+MB_OK);
       end;end