我们在建odbc的系统msn时都可以通过下拉列表选择局域网内的服务器
现在我想在delphi的一个下拉列表框中显示这些服务器名称,
请问各位高手如何实现?

解决方案 »

  1.   

    例:procedure TForm1.Button1Click(Sender: TObject);
    var
       SQLServer:Variant;
       ServerList:Variant;
       i,nServers:integer;
    begin
      Button1.Enabled := False;
      Try
        SQLServer := CreateOleObject('SQLDMO.Application');
        ServerList:= SQLServer.ListAvailableSQLServers;
        nServers:=ServerList.Count;
        for i := 1 to nservers do
          ListBox1.Items.Add(ServerList.Item(i));
        SQLServer := Null;
        serverList := Null;
      Finally
        Button1.Enabled := True;
      End;
    end;
      

  2.   

    给你一个函数吧
    要看你怎么用了
    功  能: 返回网络中SQLServer列表
      参  数:
              List: 需要填充的List
      返回值: 成功:  True,并填充List  失败 FalseFunction GetSQLServerList(var List: Tstringlist): boolean;
    var
       i: integer;
       sRetValue: String;
       SQLServer: Variant;
       ServerList: Variant;
    begin
      Result := False;
      List.Clear;
      try
        SQLServer := CreateOleObject('SQLDMO.Application');
        ServerList := SQLServer.ListAvailableSQLServers;
        for i := 1 to Serverlist.Count do
          list.Add (Serverlist.item(i));
        Result := True;
      Finally
        SQLServer := NULL;
        ServerList := NULL;
      end;
    end;