大家好!请教CSDN里的朋友们一个问题,在一个局域网里,一台机子作为服务器,上面装了sql server 2000,其他的客户机上没有装。问题是客户机如何连接sql server 2000???我写了一段代码,但是不管用,麻烦大家帮忙看一下。
procedure TForm1.Button1Click(Sender: TObject);
var   
  servername,databasename,ad,password:string;
  connect:string;
begin
  servername:=combobox1.Text;
  databasename:=combobox2.Text;
  ad:=edit3.Text;
  password:=edit4.Text;
  form1.ADOConnection1.Close;
  connect:='Provider=SQLOLEDB.1;Password='+password+';Persist Security Info=false;User ID='+ad+';Initial   Catalog='+databasename+';Data   Source='+servername;
  form1.ADOConnection1.ConnectionString:=connect;   
  form1.ADOConnection1.CommandTimeout:=10;
  try
    form1.ADOConnection1.Open;
    form1.ADOConnection1.Connected:=true;
    application.MessageBox('数据连接成功!','系统提示',0+64);
  except
    application.MessageBox('数据库连接失败!','系统提示',0+64);
  end;
end;
连接的时候,会发生异常,弹出数据库连接失败,不知道程序什么地方有毛病???

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    servername,databasename,ad,password:string;
    connect:string;
    begin
    servername:=combobox1.Text;
    databasename:=combobox2.Text;
    ad:=edit3.Text;
    password:=edit4.Text;
    form1.ADOConnection1.Active:=false;
    connect:='Provider=SQLOLEDB.1;Password='+password+';Persist Security Info=false;User ID='+ad+';Initial Catalog='+databasename+';Data Source='+servername;
    form1.ADOConnection1.ConnectionString:=connect;
    form1.ADOConnection1.CommandTimeout:=10;
    try
    form1.ADOConnection1.active:=true;
    form1.ADOConnection1.Connected:=true;
    application.MessageBox('数据连接成功!','系统提示',0+64);
    except
    application.MessageBox('数据库连接失败!','系统提示',0+64);
    end;
    end;
      

  2.   

    这个没有用form1.ADOConnection1.Open;你代码没什么问题,检查是否使用的是混合模式,如果不是改成混合模式
      

  3.   

    同意brightyang(伊莎贝尔)的看法
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
       servername,databasename,ad,password:string;
       connect:string;
       ok: boolean;
    begin
       servername:=combobox1.Text;
       databasename:=combobox2.Text;
       ad:=edit3.Text;
       password:=edit4.Text;
       connect:='Provider=SQLOLEDB.1;Password='+password+';Persist Security Info=false;User ID='+ad+';Initial Catalog='+databasename+';Data Source='+servername;
    //
       form1.ADOConnection1.ConnectionString:=connect;
       form1.ADOConnection1.CommandTimeout:=10;
       try
          form1.ADOConnection1.Connected:=true;
          ok:=form1.ADOConnection1.Connected;
       except
          ok:=false;
       end;
    //
       if ok then
          application.MessageBox('数据连接成功!','系统提示',0+64)
       else
          application.MessageBox('数据库连接失败!','系统提示',0+64);
    end;
      

  5.   

    顺序反了,OPEN要放后面
        form1.ADOConnection1.Connected:=true;
       form1.ADOConnection1.Open;
      

  6.   

    你只有服务器上装了SqlServer,而客户端都没安装SqlServer,好像是不能连的;你在客户端安装个SqlServer看看;或者用三层来搞.那样应该没问题.