procedure TFrmSetting.BtnConfirmClick(Sender: TObject);
  var tmpconnstr:string;
begin
   FrmMain.ADOConnection1.Connected := False;
   tmpconnstr := 'Provider=SQLOLEDB.1;';                           //构造ADOConnection1的连接字符串
   tmpconnstr := tmpconnstr + 'Password=' + EdtPwd.Text + ';';
   tmpconnstr := tmpconnstr + 'Persist Security Info=True;';
   tmpconnstr := tmpconnstr + 'User ID=' + EdtDBUser.Text +';';
   tmpconnstr := tmpconnstr + 'Initial Catalog=' + EdtDBName.Text + ';';
   tmpconnstr := tmpconnstr + 'Data Source=' + EdtHostName.Text + ';';
   tmpconnstr := tmpconnstr + 'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;';
   tmpconnstr := tmpconnstr + 'Workstation ID=' + EdtHostName.Text +';';
   tmpconnstr := tmpconnstr + 'Use Encryption for Data=False;Tag with column collation when possible=False';
   showmessage(tmpconnstr);
   FrmMain.ADOConnection1.ConnectionString := tmpconnstr;
   
      FrmMain.ADOConnection1.Connected := True;   //
    
          FrmMain.ADOQuery1.Active := True;
   FrmMain.ADOQuery1.ExecSQL;
  Close;    //配置窗口关闭
end;我要是参数正确的话没问题,但是参数输入错误的话,程序会出错(不响应),这个问题(参数输入错误的情况)怎么处理.我学生,正在学习.
高人指点一下.谢谢.

解决方案 »

  1.   


    procedure TFrmSetting.BtnConfirmClick(Sender: TObject);
      var tmpconnstr:string;
    begin
       FrmMain.ADOConnection1.Connected := False;
       tmpconnstr := 'Provider=SQLOLEDB.1;';                           //构造ADOConnection1的连接字符串
       tmpconnstr := tmpconnstr + 'Password=' + EdtPwd.Text + ';';
       tmpconnstr := tmpconnstr + 'Persist Security Info=True;';
       tmpconnstr := tmpconnstr + 'User ID=' + EdtDBUser.Text +';';
       tmpconnstr := tmpconnstr + 'Initial Catalog=' + EdtDBName.Text + ';';
       tmpconnstr := tmpconnstr + 'Data Source=' + EdtHostName.Text + ';';
       tmpconnstr := tmpconnstr + 'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;';
       tmpconnstr := tmpconnstr + 'Workstation ID=' + EdtHostName.Text +';';
       tmpconnstr := tmpconnstr + 'Use Encryption for Data=False;Tag with column collation when possible=False';
       showmessage(tmpconnstr);
       FrmMain.ADOConnection1.ConnectionString := tmpconnstr;
       try
         FrmMain.ADOConnection1.Connected := True;   //
       except
         on E : Exception  do 
          riase E.Message;
       end;
        
              FrmMain.ADOQuery1.Active := True;
       FrmMain.ADOQuery1.ExecSQL;
      Close;    //配置窗口关闭
    end;
      

  2.   

    try
      ADOConnection1.Open;
    except
      错误处理
    end;
      

  3.   

    加个异常处理try-except,最好是把连接字符串showmessage一下,看看有什么不对的地方。
      

  4.   

    procedure TFrmSetting.BtnConfirmClick(Sender: TObject);
      var tmpconnstr:string;
    begin
       FrmMain.ADOConnection1.Connected := False;
       tmpconnstr := 'Provider=SQLOLEDB.1;';                           //构造ADOConnection1的连接字符串
       tmpconnstr := tmpconnstr + 'Password=' + EdtPwd.Text + ';';
       tmpconnstr := tmpconnstr + 'Persist Security Info=True;';
       tmpconnstr := tmpconnstr + 'User ID=' + EdtDBUser.Text +';';
       tmpconnstr := tmpconnstr + 'Initial Catalog=' + EdtDBName.Text + ';';
       tmpconnstr := tmpconnstr + 'Data Source=' + EdtHostName.Text + ';';
       tmpconnstr := tmpconnstr + 'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;';
       tmpconnstr := tmpconnstr + 'Workstation ID=' + EdtHostName.Text +';';
       tmpconnstr := tmpconnstr + 'Use Encryption for Data=False;Tag with column collation when possible=False';
       showmessage(tmpconnstr);
       FrmMain.ADOConnection1.ConnectionString := tmpconnstr;
       try     FrmMain.ADOConnection1.Connected := True;   //
       except
         on E : Exception  do 
          riase E.Message;
       end;
        
              FrmMain.ADOQuery1.Active := True;
       FrmMain.ADOQuery1.ExecSQL;
      Close;    //配置窗口关闭
    end;