先谢谢了

解决方案 »

  1.   

    查找局域网上的sqlserver报务器。
        uses Comobj;
        procedure TForm1.Button1Click(Sender: TObject);
        var
        SQLServer:Variant;
        ServerList:Variant;
        i,nServers:integer;
        sRetValue:String;
        begin
          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;
        end;
      

  2.   

    说明
    1 客户端需要安装msde,或者至少sqldmo
    2 只对sql server2000有效
    3 ip地址可以通过ping,gethostbyname等方法实现
      

  3.   

    晚了,UP一下吧。
    如果网内SQL服务器多的话,建议楼主用线程做
      

  4.   

    取得ip
      phe :=GetHostByName(buffer);
      if phe = nil then Exit;
      pptr := PaPInAddr(Phe^.h_addr_list);
      I := 0;
      while pptr^[I] <> nil do begin
        result:=StrPas(inet_ntoa(pptr^[I]^));
        Inc(I);
      end;
    ...