一个很困惑的问题,请SQL高手接分 不能一概而论,什么情况用Query,什么情况用Table完全靠你自已把握。一般来说Query有更大的灵活性,至于效率,要看什么SQL操作,你用的简单的insert,delete等当然看不出差异,但你搞一些复杂的SQL操作试试看,嘿嘿...例:你用AdoTable把A库a表的所有记录复制到B库b表是很麻烦的,但AdoQuery一个动作完成。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多用户状态下table会引起记录不能更新或者已经被改变等错误在对大量数据进行处理是Tadoquery才显示出来他的优越性 那么我想问大家,客户端输入数据和修改数据到底是用ADOQuery 还是ADOTable 好呢?(3-5用户)谢谢。 ADOTable是borland的一个封装,实际也是由sql语句完成的;AdoQuery是一个较通用的控件,速度不会慢;你的问题在于ADOTable只执行了一条append命令,AdoQuery在insert前还执行了打开数据库操作,这是十分费时间的;解决办法是为AdoQuery指定数据库,不要在每次操作前都打开关闭数据库。 我只用adoqueryadoquery返回的结果也可以修改requestlive:=ture; with ADOquery do begin Append; FieldByName('客户姓名').AsString:=Edit1.Text; Post; end; query慢主要原因是你执行SQL前要打开数据库和表,而Table提前将这个过程做了。数据库的开启和关闭很费时的。Table的缺点就是每次打开时(无论你如何设置)都执行一个SQL语句(select * from table),如果表小的话没什么,但如果表的纪录很多时就会很明显了,特别是在多层分布式应用系统中是很忌讳用TTable的。具体用那一个好,要看你做的是什么东西了。 请问jianling0538(zjl)老兄:你那样子的数据还能提交到数据库吗? to: xfwf当然可以, ADOQuery与ADOTable都是继承TCustomADODataSet的,只要设定requestLive属性为true既可以了 大多数查询用Query效率更高,特别是表的字段较多,而只查询其中几个字段时,Table是将所有字段数据全部返回客户端,而Query则只返回其中几个字段数据。 同意 tccb(tccb) 的说法!事实就是其实都是通过SQL语句于Database接触,只是被封装了几道的问题,你的Query操作慢,就是数据打开上很花费时间和资源! 切记不要每次操作都这样! 否则你的数据库操作在数据量很大时 很快就被down了! ADO访问数据库最好还是 用Query, 因为 你可以扑获自己想要的异常和实现自己想要的复杂数据操作, 效率单在SQL角度上是几乎一致的! 谢谢大家,小弟刚刚接触SQL-Server开发,所以有很多地方要向各位请教,所以以后还会向大家求教。小弟的E-Mail:[email protected] delphi 编程规范文档;工程项目文档;项目技术文档 多线程问题 这样求form1的中心坐标为什么会报“Incompatible types”错误 WebBrowser控件的几个小问题 如何用Tquery控件来将一个图片存入数据库中?解决立即结贴! DBGrid 中文印出乱码 我想做一个我们单位的人事管理系统,但是我没有该项目实际编程的 自动累加的问题(这回应该很清楚了吧) 浙江联信科技因业务需要,诚招 Delphi 开发工程师 用DELPHI的自带工具制作联机文档中的困惑。 关于组件的问题,能者进 急!关于在Delphi中用程序新建和删除一表格(给分100!再线等待!!!)
在对大量数据进行处理是Tadoquery才显示出来他的优越性
AdoQuery是一个较通用的控件,速度不会慢;
你的问题在于ADOTable只执行了一条append命令,AdoQuery在insert前还执行了打开数据库操作,这是十分费时间的;
解决办法是为AdoQuery指定数据库,不要在每次操作前都打开关闭数据库。
我只用adoqueryadoquery返回的结果也可以修改
requestlive:=ture;
with ADOquery do begin
Append;
FieldByName('客户姓名').AsString:=Edit1.Text;
Post;
end;
Table的缺点就是每次打开时(无论你如何设置)都执行一个SQL语句(select * from table),如果表小的话没什么,但如果表的纪录很多时就会很明显了,特别是在多层分布式应用系统中是很忌讳用TTable的。
具体用那一个好,要看你做的是什么东西了。
requestLive属性为true既可以了