如何取得表的个数?
前提:1.不通过ADOX
      2.不用GetTableNams()的StringList

解决方案 »

  1.   

    我记得在ADO的原型中,有Connection.Recordset.Count 为什TADOConnection中没有?
    请高手指教。
      

  2.   

    那是取得连接这个Connection的TADODataSet的个数吧.
      

  3.   

    TO: CoolSlob 我的目的是取得表的个数。
      

  4.   

    使用:
    ADOConnection1.DataSetCount
      

  5.   

    var
      a:TStringList;
    begin
      a := TStringList.Create;
      ADOConnection1.GetTableNames(a);
      ShowMessage(inttostr(a.Count));
      a.Free;
    end;
      

  6.   

    TO: Wally_wu    ADOConnection1.DataSetCount 取出的已连接表数TO: nobitian  谢谢! 此方法虽然可行,但我的问题的前提是不使用这种方法。
      

  7.   

    你是说取得某个数据库的表的个数吧:在SQL SERVER中:select * from sysobjects where xtype = 'U'
      

  8.   

    应该是这样写:adoquery1.sql.add('select count(*) as tablecount from sysobjects where xtype= ''u''');
    adoquery1.open
    showmessage(adoquery1.fieldbyname('tablecount').asstring);
      

  9.   

    TO Drate:
     这样写在SQL-SERVER中是对的,其它数据库就不行了
    还有其它方法吗?
      

  10.   

    to  cenwangsky(屹康):
    你的问题不是通过ADOConnection直接取得表的个数?
    不连接ADOConnection怎么取得表?就算GetTableNames也可连接呀,使用adoquery1也要连接呀!
      

  11.   

    TO: Wally_wu  
      那是取得已连接上这个Connection的TADODataSet的个数,面不是这Connection中表的个数。
      

  12.   

    如果是SQL Server的话,可以这样做:
    select count(name) from sysobjects where type='U'
      

  13.   

    select * from sysobjects where type='U'
    select * from sysobjects where xtype= 'u'
    都可以,楼主说是什么数据库呢》》??
    你是不是想使用SQL语句,而是用一种方法呢!
      

  14.   

    TO mengxianboa1521
    是的,我想解决的是通用问题,不是只针对sql-server的。最好不用sql语句。
      

  15.   

    用ADOConnection1.DataSetCount确实不行,
    而楼主又说不用其他,。
    郁闷
    学习ing。