鱼C论坛

 找回密码
 立即注册
查看: 3155|回复: 3

[技术交流] ADODataSet与ADOQuery的区别

[复制链接]
发表于 2012-5-2 11:44:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
   此组件功能是非常强大的,通过ADODataset,可以直接与一个表进行联接,也可以执行SQL语句,还可以执行存储过程,可以说集ADOTable、 ADOQuery、 ADOStoreProc三者的功能于一身。在使用时,首先设定其Connection属性为ADOConnection组件,没有 ADOConnection组件就直接设定ConnectionString属性。接下来有两个重要属性CommandType与 CommandText,这两个属性相互关联的。CommandType决定采用何种方式如存储过程、数据表还是其他等等,一旦设定了 CommandType,CommandText属性就可以相应设定了。比如设定CommandType为cmdTable,那么CommandText 就会列出所有的数据表供选择,如果选择CommandType为cmdStoredProc,则CommandText将会列出所有的存储过程供选择,如果选择CommandType为cmdText,那么单击CommandText属性后的省略号将会打开“CommandText Editor”,在这里其实就是让用户编写SQL语句的,此窗体提供了数据表列表及数据表中字段列表,给用户提供了方便,使得编写SQL语句更容易。如果你对写SQL语句比较熟悉的话根本无需其帮助,还不如自己手写的快。设定完这些属性最后设定其Active属性为True即可,如果有参数请在属性中设定一下。此组件和DataSource相连后就可DbGrid等组件中显示。ADOCommand组件 此组件有CommandType与CommandText两个重要属性,属性的设定方法和上面的ADODataSet组件相同。不过此组件不是数据集组件,所以无法和DataSource组件相连,设定属性好之后可以用其ExecSQL方法执行。此组件有什么用途呢?因为ADO本身有Command对象,所以估计Delphi为了把这种对象对应于VCL才引入的ADOCommand,它只是提供了另外一种操作方式而已,它主要用于数据定义操作,所以此组件并不常用,而且大部分功能都可以通过别的组件进行,一般用途并不太大。 ADO存取技术元件几乎是采用一对一的方式来封装原生的ADO物件,TADODataSet元件了ADO的RecordSet物件,并且提供了和 Delphi的资料感知元件连结的能力,TADODataSet元件的CommandType特性代表了TADODataSet封装的RecordSet 物件会执行什么形态的命令,我们可以把TADOTable元件看作是封装设定CommandType为cmdTable的RecordSet物件,把 TADOStoredProc元件看作是封装设定CommandType为cmdStoredProc的RecordSet物件,但对于 ADOCommand、ADOQuery元件来讲还是有一些些区别·可以把TADOQuery元件看作是封装设定CommandType为cmdText的RecordSet物件,但若使用TADODataSet元件,其所使用的SQL叙述必须是有回传资料的语法(如Select等),其不支援无回传资料的语法(如Insert, Delete, Update等),而TADOQuery元件无此限制,可使用有回传资料和无回传资料的语法·而TADOCommand元件也是使用SQL语言的元件,但其和TADODataSet元件的不同之处在于其只能使用于资料定义语言(Data Definition Language)和无回传资料的SQL语法,其作用在于TADOCommand元件使用的资源较少,如果ADO应用程式中有经常需要执行不回传资料的 SQL叙述时,使用TADOCommand元件可得到较好的效率·另外需要说明的一点是在TADOCommand元件中使用有回传资料的SQL语法并不是不可以,只是必须再搭配一个ADO的资料集元件才可以接受由TADOCommand回传的结果资料,所以不如直接使用ADOQuery或 ADODataSet来得节省资源。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-11-1 10:58:11 | 显示全部楼层
楼主虽然写得好。 但真是无法看懂。 正在学这一课。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2015-2-1 16:36:51 | 显示全部楼层
支持楼主发扬Delphi
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 11:43:08 | 显示全部楼层
能讲一下DataSet的 append, Edit, Delete, Post原理吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 22:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表