unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,data_unit,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    EdDBName: TEdit;
    EDUserName: TEdit;
    EDPassWord: TEdit;
    BTNconne: TButton;
    BTNClose: TButton;
    Label4: TLabel;
    EDServerName: TEdit;
    procedure BTNconneClick(Sender: TObject);
    procedure BTNCloseClick(Sender: TObject);
  private
    Datamod:Tdatamodule1;
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.BTNconneClick(Sender: TObject);
begin
   if (Trim(EDuserName.Text)='')or (Trim(EdDBName.Text)='')then
   begin
     showmessage('请正确填写参数信息!');
     exit;
   end;   Datamod.ADOConn1.Close;
   Datamod.ADOConn1.ConnectionString:='provider=sqloledb.1;Persist Security Info=True;UserID='+EDUserName.Text+'';
   if not (Trim(EDServername.Text)='') then
      Datamod.ADOConn1.ConnectionString:=Datamod.ADOConn1.ConnectionString+'datasoure='+EDserverName.Text+'';
   if Trim(EDpassword.Text)='' then
   begin
     Datamod.ADOConn1.ConnectionString:=Datamod.ADOConn1.ConnectionString+'password=''';
   end
   else
   Datamod.ADOConn1.ConnectionString:=Datamod.ADOConn1.ConnectionString+'Password='+Edpassword.Text+'';
   Datamod.ADOConn1.ConnectionString:=Datamod.ADOConn1.ConnectionString+'initial catalog='+EDDBName.Text+'';
   try
   Datamod.ADOConn1.Open;
   except
   application.MessageBox('对不起!参数设置错误,无法连接数据库!','参数错误',mb_ok+mb_iconerror);
   exit;
   end;
   application.MessageBox('参数设置成功!','参数正确',mb_ok+mb_iconexclamation);form2.show;
end;procedure TForm1.BTNCloseClick(Sender: TObject);
begin
close;
end;end.

解决方案 »

  1.   

    ConnectionString最后所组出来的字符串之间似乎缺少分号。
      

  2.   


    Datamod.ADOConn1.ConnectionString:='provider=sqloledb.1;Persist Security Info=True;UserID='+EDUserName.Text+';'; 
      

  3.   

    Datamod.ADOConn1.ConnectionString:='provider=sqloledb.1;Persist Security Info=True;UserID='+EDUserName.Text+';'; 有几处地方都存在这样的bug
      

  4.   

    你用的数据库是SQLSERVER是吧。
    你先手动配置一下ADOConnection的连接字符串,然后把配置好的连接字符串粘出来,把用户名、密码、数据库名称改成变量就可以了 这样应该就不会错了。
      

  5.   

    你写的这个连接字符串里UserId 和Password中间缺少";"  还有initial catalog这里也缺少";"begin
    if (Trim(EDuserName.Text)='')or (Trim(EdDBName.Text)='')then
      begin
        showmessage('请正确填写参数信息!');
        exit;
      end;  ADOConn1.Close;
      ADOConn1.ConnectionString:='provider=sqloledb.1;Persist Security Info=True;UserID='+EDUserName.Text+';';
      if not (Trim(EDServername.Text)='') then
          ADOConn1.ConnectionString := ADOConn1.ConnectionString+'datasoure='+EDserverName.Text+';';
      if Trim(EDpassword.Text)='' then
      begin
        ADOConn1.ConnectionString := ADOConn1.ConnectionString+'password=''';
      end
      else
      ADOConn1.ConnectionString := ADOConn1.ConnectionString+'Password='+Edpassword.Text+';' +'initial catalog='+EDDBName.Text+'';
    //  ADOConn1.ConnectionString := ADOConn1.ConnectionString+;
      try
      ADOConn1.Open;
      except
      application.MessageBox('对不起!参数设置错误,无法连接数据库!','参数错误',mb_ok+mb_iconerror);
      exit;
      end;
      application.MessageBox('参数设置成功!','参数正确',mb_ok+mb_iconexclamation);form2.show;end;