1.在VB中,如果得到局域网内的所有计算机名及其IP?
2.在得到某一台机器后,判断是否有安装SQL Server。如果有安装,则列出所有的DataBase?
3.在vb中,我们如何返回一个table的创建语句呢?
谢谢大家。大家也可以直接mail给我,[email protected],谢谢。

解决方案 »

  1.   

    这里有些:http://www.applevb.com/sourcecode/getallserveronnet.zip
      

  2.   

    获取当前可以访问的sql server,引用sqldmo。 Dim Server As SQLDMO.NameList
     Dim appDMO As New SQLDMO.Application
     Dim i As Integer
            
     On Error GoTo Error
        
     Set Server = appDMO.ListAvailableSQLServers
        
     For i = 1 To Server.Count
         cmbServer.AddItem Server(i)
         Debug.Print Server(i)
     Next
      

  3.   

    http://expert.csdn.net/Expert/topic/2159/2159828.xml?temp=.901333
      

  4.   

    同样是用Connection对象执行SQL语句:新建一个表:
    CREATE TABLE dbo.TABLE1
    (
    a char(10) NOT NULL,
    b char(10) NULL,
    c char(10) NULL
    )  ON [PRIMARY]添加一个关键字:
    ALTER TABLE dbo.TABLE1 ADD CONSTRAINT
    PK_TABLE1 PRIMARY KEY CLUSTERED 
    (
    a
    ) ON [PRIMARY]这里最好用到事务的处理,调用一个存储过程。
      

  5.   

    1:
    '列出局域网内所有有效的sqlserver机器
    '引用Microsoft SQLDMO Object Library
        Dim Server As SQLDMO.NameList
        Dim appDMO As New SQLDMO.Application
        Dim i As Integer
            
       
        Set Server = appDMO.ListAvailableSQLServers
        
        For i = 1 To Server.Count
            Debug.Print Server(i)
        Next或者: master..xp_cmdshell 'osql -L'2:
    你需要连接上对方的机器才行
      select name as 数据库名 from sysdatabases3:/*  
               在查询分析器中调用sqldmo生成脚本--函数  
     
    邹建  2003.07-----------------*/  
     
    /*--调用实例  
               print  dbo.fgetscript('服务器名','用户名','密码','数据库','你要得到脚本的表')  
     
    /*--得到所有对象的脚本  
    declare  @name  varchar(250)  
    declare  #aa  cursor  for  
               select  name  from  sysobjects  where  xtype  not  in('S','PK','D','X','L')  
    open  #aa  
    fetch  next  from  #aa  into  @name  
    while  @@fetch_status=0  
    begin  
               print  dbo.fgetscript('zj','','','xzkh_sa',@name)  
               fetch  next  from  #aa  into  @name  
    end  
    close  #aa  
    deallocate  #aa  
    --*/  
    */  
    if  exists(select  1  from  sysobjects  where  id=object_id('fgetscript')  and  objectproperty(id,'IsInlineFunction')=0)  
               drop  function  fgetscript  
    go  
     
    create  function  fgetscript(  
               @servername  varchar(50)                                      --服务器名  
               ,@userid  varchar(50)='sa'                                    --用户名,如果为nt验证方式,则为空  
               ,@password  varchar(50)=''                                    --密码  
               ,@databasename  varchar(50)                                   --数据库名称  
               ,@objectname  varchar(250)                                    --对象名  
     
    )  returns  varchar(8000)  
    as  
    begin  
               declare  @re  varchar(8000)                                       --返回脚本  
               declare  @srvid  int,@dbsid  int                                  --定义服务器、数据库集id  
               declare  @dbid  int,@tbid  int                                    --数据库、表id  
               declare  @err  int,@src  varchar(255),  @desc  varchar(255)       --错误处理变量  
     
    --创建sqldmo对象  
               exec  @err=sp_oacreate  'sqldmo.sqlserver',@srvid  output  
               if  @err<>0  goto  lberr  
     
    --连接服务器  
               if  isnull(@userid,'')=''  --如果是  Nt验证方式  
               begin  
                           exec  @err=sp_oasetproperty  @srvid,'loginsecure',1  
                           if  @err<>0  goto  lberr  
     
                           exec  @err=sp_oamethod  @srvid,'connect',null,@servername  
               end  
               else  
                           exec  @err=sp_oamethod  @srvid,'connect',null,@servername,@userid,@password  
     
               if  @err<>0  goto  lberr  
     
    --获取数据库集  
               exec  @err=sp_oagetproperty  @srvid,'databases',@dbsid  output  
               if  @err<>0  goto  lberr  
     
    --获取要取得脚本的数据库id  
               exec  @err=sp_oamethod  @dbsid,'item',@dbid  output,@databasename  
               if  @err<>0  goto  lberr  
     
    --获取要取得脚本的对象id  
               exec  @err=sp_oamethod  @dbid,'getobjectbyname',@tbid  output,@objectname  
               if  @err<>0  goto  lberr  
     
    --取得脚本  
               exec  @err=sp_oamethod  @tbid,'script',@re  output  
               if  @err<>0  goto  lberr  
     
               --print  @re  
               return(@re)  
     
    lberr:  
               exec  sp_oageterrorinfo  NULL,  @src  out,  @desc  out    
               declare  @errb  varbinary(4)  
               set  @errb=cast(@err  as  varbinary(4))  
               exec  master..xp_varbintohexstr  @errb,@re  out  
               set  @re='错误号:  '+@re  
                                       +char(13)+'错误源:  '+@src  
                                       +char(13)+'错误描述:  '+@desc  
               return(@re)  
    end  
    go  
      

  6.   

    select name from sysdatabases; --返回所有数据库名
    或者使用存储过程:sp_databases
      

  7.   

    str = "create table newtable(A string)"