查询ADO构造进行学习切磋

开发 后端
进行ADO构造集合的 Clear 方法以删除集合中所有现有的 Error 对象。发生错误时,ADO 将自动清空 Errors 集合,并用基于新错误的 Error 对象填充集合。

本系列课程我们将会从ADO构造的各个角度出来,来讲述ADO构造发布以后的全新功能,这主要包括C#3.0,VB9.0,WCF,WPF,WP,LINQ,AJAX,mobile开发,Cardspace,智能客户端。

在构造查询的时候,要搞清楚为什么必须这么做、为什么不能那么做是一个很复杂的问题。然而,一些基本的指导方针能够让构造高效查询的过程更加流畅、轻松。一般地,你不应该让查询浪费服务器时间。下面几个技巧能够帮助你构造出更好、更高效的查询。

不要强制ADO构造每次执行查询的时候重新编译和构造查询执行计划。避免这种重复操作的一种简单方法是使用带有参数的存储过程。注意尽量不要使用ADO Command对象的Prepare属性——有时它不能正确工作。如果使用存储过程,你还可以通过消除不必要的“受影响行数”返回值进一步提高ADO性能——只需在存储过程中加入SET NOCOUNT ON就可以了。

尽量减少与服务器的通信次数。如果你有几个相关的操作要执行,请把它们合并为一个存储过程,或者是一个可以在服务器上作为脚本执行的复合查询。ADO构造避免使用方法(比如Refresh)和不适当的Parameters集合引用,ADO构造会强制ADO增加额外的服务器通信过程。#t#

在客户机/服务器应用中,只构造Command对象一次,而不是每次使用Command对象的时候重新构造。你可以重新设置Command的参数值,然后在需要时执行它。

当查询返回的不是一个记录集时,确保使用了adExecuteNoRecords选项,告诉ADO越过所有那些用来接收和构造记录集(Recordset格式)的代码。ADO构造你可以把adExecuteNoRecords选项传递给Execute方法,或把它作为Command的选项。

执行返回简单记录集的存储过程时,不要使用Command对象。所有的存储过程(以及Command对象)可以作为Connection对象的COM方法出现。让存储过程作为Connection对象的方法出现有着显著的性能优势,同时它也简化了代码。

尽管这种技术对于那些有Return Status值或Output参数的存储过程没有什么帮助,但对于动作查询(INSERT、DELETE等)ADO构造及那些返回一个或多个记录的查询来说,这种技术很有用。把存储过程作为Connection的方法之后,你可以用方法参数的形式传入存储过程的输入参数;如果调用存储过程返回了一个记录集,你可以通过方法调用中***一个参数引用该Recordset。例如,下面的ADO构造执行一个名为“Fred”的存储过程,Fred存储过程有两个输入参数,返回一个Recordset:

责任编辑:chenqingxiang 来源: NET130
相关推荐

2009-12-22 16:42:57

ADO.NET研究

2010-01-04 10:33:08

ADO DataSet

2009-12-30 09:10:04

ADO.NET Ent

2010-01-05 14:37:39

JSON POST

2010-01-08 13:42:21

JSON VS XML

2009-12-30 15:41:23

ADO MoveNex

2009-12-28 14:47:53

ADO工具

2009-12-24 17:23:05

2009-12-22 09:50:23

ADO.NET学习

2010-01-04 17:20:47

ADO属性

2009-12-28 11:14:53

ADO 连接对象

2009-12-23 17:21:31

ADO.NET团队

2009-12-28 17:09:34

ADO.NET实例

2009-12-30 15:37:14

ADO处理

2009-12-24 17:45:31

ADO查询

2010-01-11 09:40:02

C++语言

2009-12-29 15:30:15

ADO Insert

2010-01-04 10:14:04

ADO.NET对象模型

2009-12-23 16:21:38

ADO.NET工具

2010-01-12 14:22:26

Visual C++
点赞
收藏

51CTO技术栈公众号