偶想用Delphi6利用ADO实现和SQL Server2000的一个管理系统设计,这里想设计一个用户登录框,窗体一共三项,1。服务器名称  2。用户名   3。密码
想通过输入的服务器的名称,自适应连接数据库,程序如下,
procedure TFrm_login.FormCreate(Sender: TObject);
var
   myconnstr: String;
   server_name: String;
   ADODataSet: TADODataSet;
begin
   //建立数据库连接字符串
   server_name := ComboBox_server.Text;
   myconnstr := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=GongZi;Data Source=zyd';
   //设置连接属性
   Frm_main.ADOConn.ConnectionString := myconnstr;报错,没有输入服务器或者OLEDB有错误,
如果用ADOConnection直接通过对话框连接数据库运行没有问题,望高手解决啊!!!

解决方案 »

  1.   

    你要动态连也不要瞎连吧
    你都设置了服务器名了,怎么还连zyd呀,还有User ID= 那去了,password= 那去了
      

  2.   

    ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID='+DB_UserName+';';
      ConnectionString:=ConnectionString+'Password='+DB_Password+';';
      ConnectionString:=ConnectionString+'Initial Catalog='+DataBase+';Data Source='+DB_IP+';';
      Conn.ConnectionString:=ConnectionString;
    参考一下吧
      

  3.   

    用SQL 方式登录:
       constr:='Provider=SQLOLEDB.1;Password='+edit3.text+';Persist Security Info=True;User ID='+edit2.Text+';Initial Catalog=销售数据库;Data Source='+edit1.Text;
       constr:=constr+';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID='+'un_known'+';Use Encryption for Data=False;';
       constr:=constr+'Tag with column collation when possible=False';
    adoconnection.connectionstring:=constr;
    edit1为服务器名称;edit2为用户名;edit3为密码
    用Windows 方式登录:
      constr:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=销售数据库;Data Source='+EDIT1.Text;
      adoconnection.connectionstring:=constr;
      

  4.   

    取服务器名称
    描述:SQL Distributed Management Objects(SQL分布式管理对象),存在于SQLDMO.dll文件中,实际上是一个COM 对象,通过调用SQL DMO的ListAvailableSQLServers方法取得。列表类型:列举装有“客户端”和“服务端”的计算机。适用条件:装有 SQL Server,且有SQLDMO.dll文件。速度:中调用示例:GetSQLServerList(ListBox1.items);代码:uses  ComObj; function GetSQLServerList(var AList: TStrings): Boolean;var  SQLServerApp: Variant;  ServerList: Variant;  i: Integer;begin  Result := True;  try    SQLServerApp := CreateOleObject('SQLDMO.Application');    ServerList := SQLServerApp.ListAvailableSQLServers;    for i := 1 to ServerList.Count do      AList.Add(ServerList.Item(i));    SQLServerApp := Unassigned;    ServerList := Unassigned;  except    Result := False;  end;end;
      

  5.   

    数据库连接字符串:
       constr:='Provider=SQLOLEDB.1;Password='+密码+';Persist Security Info=True;User ID='+用户名+';Initial Catalog=GongZi;Data Source='+服务器名;