ADODataSet组件
  此组件功能是非常强大的,通过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來得節省資源﹒

ADODataSet与ADOQuery的区别的更多相关文章

  1. Delphi中使用ADO连接Excel

    第一部分: . 设置ADOConnection的ConnectionString属性的OLE DB的提供者要选择Microsoft Jet 4.0 OLE DB Provider(这本来是用于连接Ac ...

  2. Delphi数据库处理

    Delphi数据库处理 第一节 BDE.ADO.InterBase和dbExpress Delphi中处理数据库主要有两种方法,也就是BDE.ADO,从Delphi 6.0开始还加入了一种dbExpr ...

  3. adoquery.refresh和adoquery.query的区别

    大的区别没有 1: requery是通过重新发出原始命令并再次检索数据,可使用 Requery 方法刷新来自数据源的 Recordset 对象的全部内容.调用该方法等于相继调用 Close 和 Ope ...

  4. 序列化ADODataSet, ADOQuery

    经过昨天晚上一折腾把做了一个DIOCP直接传递TADOQuery的Demo,在google上找了一系列的资料. 这样服务端可以直接将TADOQuery查询出来的数据直接转换成TStream自己进行传递 ...

  5. Requery,Refresh,Adoquery.Close,Open 区别

    经过测试发现: Requery 相当于 Adq.Close,Open:并且比Close,Open方法有个优点就是不丢失排序,Sort Adq.Close,Open 后,原来的 Adq.Sort 会丢失 ...

  6. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

  7. jquery和Js的区别和基础操作

    jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. 探究@property申明对象属性时copy与strong的区别

    一.问题来源 一直没有搞清楚NSString.NSArray.NSDictionary--属性描述关键字copy和strong的区别,看别人的项目中属性定义有的用copy,有的用strong.自己在开 ...

随机推荐

  1. PAT A1132 Cut Integer (20 分)——数学题

    Cutting an integer means to cut a K digits lone integer Z into two integers of (K/2) digits long int ...

  2. jmeter(十九)HTTP属性管理器

    jmeter是一个开源灵活的接口和性能测试工具,当然也能利用jmeter进行接口自动化测试.在我们利用它进行测试过程中,最常用的sampler大概就是Http Request, 使用这个sampler ...

  3. 学习CSS布局 - position

    position 为了制作更多复杂的布局,我们需要讨论下 position 属性. 它有一大堆的值,名字还都特抽象,别提有多难记了. 让我们先一个个的过一遍,不过你最好还是把这页放到书签里. 先看下运 ...

  4. 用kubernetes部署oa 强制删除pod delete

    1.[root@pserver88 oa]# cat Dockerfile FROM tomcat RUN rm -rf /usr/local/tomcat/webapps/*ADD ROOT.war ...

  5. Hive 实现 wordcount

    创建表: create table hive_wordcount(context string); load data local inpath '/home/hadoop/files/hellowo ...

  6. 解决微软surface pro在某些情况下wifi转输速度过慢的问题 - z

    我是新款i7 surface.昨天到的货,狗东. 在公司使用的时候网络很正常,但回到家里之后就特别卡.5G频段也特别卡,基本处于无法观看视频的地步.台式电脑(我台式用的无线网卡)和手机都没问题. 于是 ...

  7. WPF 带清除按钮的文字框SearchTextBox

    原文:WPF 带清除按钮的文字框SearchTextBox 基于TextBox的带清除按钮的搜索框 样式部分: <!--带清除按钮文字框--> <Style TargetType=& ...

  8. [数据可视化之一]Pandas单变量画图

    Pandas单变量画图 Bar Chat Line Chart Area Chart Histogram df.plot.bar() df.plot.line() df.plot.area() df. ...

  9. 个人博客地址: furur.xyz

    趁着Hexo的热度,最近就买了域名,在GitHub Pages上搭了个人博客.也不是说博客园不好吧,毕竟在博客园三年多,也学到了不少东西,唯一要吐槽的,估计也就是后台管理不方便,markdown无即时 ...

  10. Quartz_简单使用

    第一步:安装 新建一个QuartzDemo项目后,安装下面的程序包 Install-Package Quartz Install-Package Common.Logging.Log4Net1211 ...