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;
上面代码是获取在同一个局域网内的,如果一服务器不在同一个局域网而是在另外一个局域网,是用VPN连接的时候,如何获取这在另一局域网中的SQL服务器服务器名?

解决方案 »

  1.   

    是一样的,但是协议支持IP,不知道支不支持NETBUIT。
      

  2.   

    这应该到另一个版块(MS-SQL Server)求解。
      

  3.   

    通过VPN建立连接 
    你的机器已经加入局域网
    可以一样操作
      

  4.   

    如果直接输入VPN连接的远程服务器就没问题,但是我要自动获取远程服务器的实例名称?哪该怎么办?
      

  5.   

    通过VPN连接的网络是同一个局域网,  不存在这样的问题吧. 在执行上面的代码之后, 另一个局域网的服务器也会列出来, 只不过要等的时间长一点.