如果是delphi的,我可以给你一个找局域网内所有SQL2000数据服务器的程序。

解决方案 »

  1.   

    --得到服务器名及ip地址,考虑了实例的问题:declare @sname sysname,@ip varchar(15),@sql varchar(1000)--得到计算机名
    set @sname=case when charindex('\',@@servername)=0 then @@servername
    else left(@@servername,charindex('\',@@servername)-1) end--得到ip地址
    create table #ip(a varchar(200))
    set @sql='ping '+@sname+' -a -n 1 -l 1'
    insert into #ip exec master..xp_cmdshell @sqlselect @ip=left(a,patindex('%:%',a)-1) from(
    select a=substring(a,patindex('Ping statistics for %:%',a)+20,20)
    from #ip where a like 'Ping statistics for %:%') a--显示结果
    select 计算机名=@sname,ip地址=@ipgo
    drop table #ip
      

  2.   

    master..xp_cmdshell 'osql.exe -L'
      

  3.   

    多谢各位, 我用vb做开发工具。想要达到的目的是载启动程序做数据库连接的时候,不需要用户输入SQL SERVER服务器的名字,而是能够通过其他方式可以首先搜寻到SQL SERVER服务器的机器名或者IP地址,就能够马上去连接这个服务器。。上面 zjcxc(邹建) 兄 和 playyuer(双规干部) 兄的方法不错,不过我都在QA里面可以得到结果,如果根本还没有数据库连接的时候如何能得到呢?多谢各位。。
      

  4.   

    Ms VB VC .Net delphi:sql-dmoJava:
     想用Java做获取局域网内所有SQL服务器列表的功能,不知能否实现 
    http://expert.csdn.net/Expert/topic/2385/2385217.xml?temp=.9079553
      

  5.   

    -- 得到局域网内所有SQL服务器名字与ip地址的存储过程:create proc send_message as begin
      create table #tspid(
    spid int null,
    ecid int null,
    status varchar(200) null,
    loginname varchar(200) null,
    hostname varchar(200) null,
    blk bit null,
    dbname varchar(200) null,
    cmd varchar(200)
      )insert into #tspid(spid,ecid,status,loginname,hostname,blk,dbname,cmd) exec sp_who create table #userip(id int identity,hostname varchar(200),txt varchar(8000))declare @cmdStr varchar(100), @hostName varchar(30), @userip varchar(20), @sendstr varchar(100)declare tspid cursor for select hostname from #tspid where spid>50
    open tspid   fetch next from tspid into @hostname
       WHILE @@FETCH_STATUS = 0
       begin
    create table #table (id int identity,txt varchar(8000))
    select @cmdStr='ping '+@hostName
    insert #table(txt) exec master..xp_cmdshell @cmdStr
    insert #userip select @hostname,substring(txt,charindex('[',txt)+1,charindex(']',txt)-charindex('[',txt)-1) from #table where id=2
    drop table #table
       fetch next from tspid into @hostname
       end select * from #userip
      drop table #tspid ,#userip
    endgo--调用:
    exec send_message
      

  6.   

    多谢 playyuer(双规干部) ,我用了 sqldmo对象后确实可以,真希望能够用编程的办法去实现 sqldmo 的功能。
      

  7.   

    另外当我打包安装的到没有sql server的客户机安装的时候,发现报错 “ActiveX不能创建"
    是不能注册sqldmo.rll文件啊,如何能够打包安装呢?
      

  8.   

    请playyuer(双规干部)解答菜鸟问题master..xp_cmdshell 'osql.exe -L'
    是标准SQL语句?
    他代表什么意思?