select name from objects

解决方案 »

  1.   

    select sysobjects.name as 数据表名称, syscolumns.name as 字段名称,
    systypes.name as 字段类型,syscolumns.length as 字段长度
    from sysobjects,syscolumns,systypes
    where sysobjects.id = syscolumns.id
    and syscolumns.xtype = systypes.xtype
    order by sysobjects.name
      

  2.   

    select name from sysobjects where type-'table' and name=''
      

  3.   

    select name from sysobjects where type='U'
      

  4.   

    select name from sysobjects where type='u' and name=''
      

  5.   

    to all:
    我按照你们说的试了,但有错误:
    “table dose not exist.
    File or directory does not exist.
    File:C:\Program Files\Common Files\Boland Shared\Data\sysobjects.db
    .....................................................\sysobjects.dbf
    .....................................................\sysobjects.txt
    .....................................................\sysobjects."顺便说一下,在测试中我把Query的DataBase设为Delphi自带的数据库DBDEMOS,
      

  6.   

    to xiaohuan:
    在哪里看sysobjects表?
      

  7.   

    Oh,是DBDEMOS
    对于Delphi自带的数据库DBDEMOS,用Sql我不太清楚,用下面的方法也能得到
    所要的表名:MyStringList := TStringList.Create;
    try
      Session.GetTableNames('DBDEMOS', '*.db',False, False, MyStringList);
    finally
      MyStringList.Free;
    end;
      ///{ All Table Add  to a MyStringList }
      

  8.   

    to su369:
    用你说的方法,问题已经解决了,谢谢!但我还想知道如果是其他数据库,如Oracal,SQL server,Access等,都可以用前面的方法(从表sysObjects中取得),是吗?还是只适用于某一种数据库?另外,在SQL中表名可以作为参数吗?像这样
    query1.sql.text:='select * from :mytable';
    query1.parambyname('mytable'):='animals';可以再加分
      

  9.   

    谢谢ScoutKing(失眠夜)、xiaohuan、su369(你是那个?) 
    结帖!