不能一概而论,什么情况用Query,什么情况用Table完全靠你自已把握。一般来说Query有更大的灵活性,至于效率,要看什么SQL操作,你用的简单的insert,delete等当然看不出差异,但你搞一些复杂的SQL操作试试看,嘿嘿...
例:你用AdoTable把A库a表的所有记录复制到B库b表是很麻烦的,但AdoQuery一个动作完成。

解决方案 »

  1.   

    多用户状态下table会引起记录不能更新或者已经被改变等错误
    在对大量数据进行处理是Tadoquery才显示出来他的优越性
      

  2.   

    那么我想问大家,客户端输入数据和修改数据到底是用ADOQuery 还是ADOTable 好呢?(3-5用户)谢谢。
      

  3.   

    ADOTable是borland的一个封装,实际也是由sql语句完成的;
    AdoQuery是一个较通用的控件,速度不会慢;
    你的问题在于ADOTable只执行了一条append命令,AdoQuery在insert前还执行了打开数据库操作,这是十分费时间的;
    解决办法是为AdoQuery指定数据库,不要在每次操作前都打开关闭数据库。
      

  4.   


    我只用adoqueryadoquery返回的结果也可以修改
    requestlive:=ture;
         with ADOquery do begin
              Append;
              FieldByName('客户姓名').AsString:=Edit1.Text;
              Post;
         end;
      

  5.   

    query慢主要原因是你执行SQL前要打开数据库和表,而Table提前将这个过程做了。数据库的开启和关闭很费时的。
    Table的缺点就是每次打开时(无论你如何设置)都执行一个SQL语句(select * from table),如果表小的话没什么,但如果表的纪录很多时就会很明显了,特别是在多层分布式应用系统中是很忌讳用TTable的。
    具体用那一个好,要看你做的是什么东西了。
      

  6.   

    请问jianling0538(zjl)老兄:你那样子的数据还能提交到数据库吗?
      

  7.   

    to: xfwf当然可以, ADOQuery与ADOTable都是继承TCustomADODataSet的,只要设定
    requestLive属性为true既可以了
      

  8.   

    大多数查询用Query效率更高,特别是表的字段较多,而只查询其中几个字段时,Table是将所有字段数据全部返回客户端,而Query则只返回其中几个字段数据。
      

  9.   

    同意 tccb(tccb) 的说法!事实就是其实都是通过SQL语句于Database接触,只是被封装了几道的问题,你的Query操作慢,就是数据打开上很花费时间和资源! 切记不要每次操作都这样! 否则你的数据库操作在数据量很大时 很快就被down了! ADO访问数据库最好还是 用Query, 因为 你可以扑获自己想要的异常和实现自己想要的复杂数据操作, 效率单在SQL角度上是几乎一致的!
      

  10.   

    谢谢大家,小弟刚刚接触SQL-Server开发,所以有很多地方要向各位请教,所以以后还会向大家求教。小弟的E-Mail:[email protected]