在程序开发中,添加数据库引用时,当选择本地服务器时,会把本地服务器有哪些数据库用下拉列表呈现给用户。这个功能应该用什么方法实现???

解决方案 »

  1.   

    如果是 SQL Server数据库,可以在连接至服务器后查询 sysdatabases 这张表来获取。
      

  2.   

    Sql Server的话,需要登录master库,然后查sysdatabasesselect * from sysdatabasesOracle的话,查select * from sys.all_users t
      

  3.   

    感觉都不怎么好用。我自己找到方法了,顺便和你们分享下
    create proc sp_databases
    as
    set nocount on
    declare @name sysname
    declare @SQL  nvarchar(600) create table #databases (
      DATABASE_NAME sysname NOT NULL,
      size int NOT NULL) declare c1 cursor for 
    select name from master.dbo.sysdatabases
    where has_dbaccess(name) = 1 -- Only look at databases to which we have access open c1
    fetch c1 into @name while @@fetch_status >= 0
    begin
    select @SQL = 'insert into #databases
    select N'''+ @name + ''', sum(size) from '
    + QuoteName(@name) + '.dbo.sysfiles'
    execute (@SQL)
    fetch c1 into @name
    end
    deallocate c1 select
    DATABASE_NAME,
    DATABASE_SIZE = size*8,
    REMARKS = convert(varchar(254),null)
    from #databases
    order by 1GO