在delphi中通过ADO怎样获得所有数据库名。
我想通过ADO提供的功能,实现类似于TSession.GetDatabaseNames

解决方案 »

  1.   

    是啊,我也碰到这个问题,我用Ado 连接Access,不知如何能得到Access数据库里的各个表格的名称。请高手指点呀!
      

  2.   


    用AdoConnection1.GetTableNames(listBox1.items);便把所有的表放入Listbox1中了
      

  3.   

    AdoConnection的GetTableNames方法,参数是TStringList
      

  4.   

    数据库名copy(adoconnection.connecttionstring,pos('Data Source=',adoconnection.connecttionstring),pos(';Persist Security Info=False',adoconnection.connecttionstring)-adoconnection.connecttionstring)) 表名adoconnection1.GetTableNames(combobox1.Items,false)
      

  5.   

    with ComboBox1 do
       begin
          items.Clear ;
            { TODO : 调用Tsession组件的getaliasnames方法获取数据库别名的列表 }
          Session.GetAliasNames(ComboBox1.Items );
          Text:=Items[0];
       end;
    Str1:=ComboBox1.Items.Strings[ComboBox1.itemindex];
     with ListBox1 do
       begin
        Items.Clear ;
        { TODO : 调用Tsession组件的gettablenames方法获取表格的列表 }
        Session.GetTableNames(str1,'',true,true,ListBox1.Items );
        end;
      

  6.   

    用 adoconnection.GetTableNames 这个方法。然后在窗口上放个列表控件或者下拉那种。后面带上控件的参数,就可以老这个方法只是得到前当数据库中的所有表名。
      

  7.   

    更正,不好意思楼主我没看清,我的代码是BDE的.呵呵
    SORRY!
      

  8.   

    如果是SQL Server就好办.
    直接执行SQL:
    Select * from sysobjects where type='U'
    取得当前数据库所有的表select * From sysdatabases
    取得当前服务器中数据库.
    等等...
    具体看帮助吧
      

  9.   

    select * from master..sysdatabases
      

  10.   

    我想你说的是如何获得本机上的所有ODBC数据源吧?就象BDE Administrator那样?
    1)可用Session.GetAliasName来获取
    2)可以从注册表中直接去查,HKEY_USERS\\software\\odbc\\odbc.ini\\odbc data source,
      那里列出了所有的ODBC数据源.
      

  11.   

    哎,晚了一步,还是说一句,用adoconnection.GetTableName将返回的结果放到列表中就行了!
      

  12.   


    ADOConnection1.Connected:=False;ADOConnection1.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DBQ='
        +OpenDialog1.FileNameADOConnection1.Connected:=True;
    ADOConnection1.GetTableNames(ListBox1.Items, False);
      

  13.   

    access也是有系统表的,你可以如此:
    select name as table_name from msysobjects 
    where type=1 and (Name Not Like 'msys%') 
    good luck!
      

  14.   

    楼主真能骗人,你哪来的一千分呀 ^_^
    取得数据库名称用adoConnection1.GetTableNames(ListBox1.items,False);
    如果真有的话,我也蹭点
      

  15.   

    我也用adoConnection1.GetTableNames(ListBox1.items,False)解决了!
      

  16.   

    adoConnection1.GetTableNames是获得某个数据库中所以表的名称,楼主不是要获得数据名称吗??
      

  17.   

    select * from sysdatabases
    sqlserver返回数据库名
      

  18.   

    adoconnection1.GetTableNames(combobox1.Items)
      

  19.   

    adoconnection1.GetTableNames(combobox1.Items)
      

  20.   

    靠,是哪种数据库?如果是SQLServer,至少有三种方法可以得到,DB2也可以
      

  21.   

    procedure TForm1.Bbtn1Click(Sender: TObject);
    begin
      with ADOQuery1 do
        begin
          Close;  SQL.Clear;
          SQL.Add('use master');
          SQL.Add('select name from sysdatabases');
          Open;
        end;
    end;
      

  22.   

    通过以下方法,可以得到所有数据源的数据库名:
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, ADODB;
    ...
    ...    procedure TForm1.Button1Click(Sender: TObject);
    begin
      edit1.Text:=PromptDataSource(Handle, edit1.Text);
    end;
      

  23.   

    hongama(delphi级民工) ( )楼主有1000分吗?楼上的兄弟们,^_^========================================
    不知道,
    但我说我有3274分,
    你相信么?
    呵呵。
      

  24.   

    你可以用Adoconnection的GetTableName方法呀。
      

  25.   

    你可以用Adoconnection的GetTableName方法呀。
      

  26.   

    你可以用Adoconnection的GetTableName方法呀。
      

  27.   

    adoconnection1.GetTableNames(combobox1.Items)
      

  28.   

    adoconnection1.GetTableNames(combobox1.Items)
      

  29.   

    AdoConnection的GetTableNames方法,参数是TStringList
    1000分太夸张了