RT

解决方案 »

  1.   

    3.得到网络上的sqlserver服务器的名称列表
    uses comobj;
    procedure TForm1.Button2Click(Sender: TObject);
    var
        sqlsever,serverlist:variant;
        i,nSevers:integer;
        sRetValue:string;
    begin
        sqlsever:=createoleobject('sqldmo.application');   //variant类型可以做CreateOleObject函数的返回值
        serverlist:=sqlsever.listavailablesqlservers;
        nsevers:=serverlist.count;
        for i:=1 to nsevers do
        memo1.Lines.Add(serverlist.item(i));
        sqlsever:=unassigned;                              //注意variant类型的释放方法
        serverlist:=unassigned;
    end;
      

  2.   

    procedure TFrmDBSet.GetSQLServerList;
    var
      SQLServer: Variant;
      ServerList: Variant;
      i, nServers: integer;
    begin
      ComboBox1.Items.Clear;
      Screen.Cursor := crHourGlass;
      try
        SQLServer := CreateOleObject('SQLDMO.Application');
        ServerList := SQLServer.ListAvailableSQLServers;
        nServers := ServerList.Count;
        for i := 1 to nServers do
          ComboBox1.Items.Add(ServerList.Item(I));
        SQLServer := NULL;
        ServerList := NULL;
        Screen.Cursor := crDefault;
      except
        Screen.Cursor := crDefault;
        MsgBox('您当前的机器没有安装SQL Server,无法导入SQL Server服务器列表,' +
          #13 + #10 + '请直接输入SQL Server服务器名称!', Self.Caption, MB_ICONINFORMATION + MB_OK);
      end;
    end;