procedure GetTables(Dms:TDatabase;ts:TStrings);
begin
  ts.clear;
  if dms.active then
  begin
    dms.Session.GetTableNames(dms.databasename,'',false,false,ts);  //ts
内就是所有的表名
  end;
end;

解决方案 »

  1.   

    Access:
    加一个TSession控件,Session1.AutoSessionName := True;
    Session1.GetTableNames(...)
    SQL
    打个命令过去
    select name from sysobjects
    回来的数据集就是数据库表名。
      

  2.   

    上面的有错,应该这样
    procedure GetTables(Dms:TDatabase;ts:TStrings);
    begin
      ts.clear;
      if dms.Connected then
      begin
        dms.Session.GetTableNames(dms.databasename,'',false,false,ts);  //ts
    内就是所有的表名
      end;
    end;
      
      

  3.   

    同意楼上的!对于ADO组件用此方法
    TADOConnection.GetTableNames
      

  4.   

    对于sqlserver数据库 取出的是所有表但是我只想取出 用户自己定义的表
      

  5.   

    http://www.csdn.net/expert/topic/156/156409.shtm
      

  6.   

    TADOConnection.GetTableNames 
    把那个布尔型的参数改为True,False试试
    意想不到把
      

  7.   

    select name from sysobjects where xtype='u'