知识加油站-ADODataSet与ADOQuery的区别

 知识加油站-ADODataSet与ADOQuery的区别

此组件功能是非常强大的,通过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等组件中显示。


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来得节省资源。



联系电话:
020-00000000
联系电话:
020-00000000
联系电话:
020-12345678