日期:2011-05-27  浏览次数:20746 次

用ADO的COMMAND对象实现对WEB数据库动态数据查询的方法
★ 林碧英
众所周知,由于ASP技术的出现,使得Intranet的应用更加广泛深入。相当多的企业都建立了企业内部综合查询系统,如何快速、准确地查询企业内部信息是编写基于WEB技术应用程序必须要解决的主要问题。ASP提供了用ADO内置的3个主要对象Recordset、Connection和Command对WEB数据库进行操作。其中Connection的主要功能是建立与WEB数据库的链接;Command的主要功能是向WEB数据库传送数据查询的请求;Recordset的主要功能是建立数据查询的结果集。由于ADO几乎就是为WEB数据库应用量身定做的,所以其中的Command对象在数据查询方面具有强大的功能。它不仅能够将一般的SQL指令送往WEB数据库服务器,还能够传送带有参数的SQL指令,更重要的是还可以传送存储过程,因而能够开发出更具效率的数据库网页。

一、command对象的主要属性和方法
为了进一步阐述Command对象的数据查询功能,有必要先介绍一下Command对象的与数据查询密切相关的一些属性和方法。
属性:
(1)CommandText:指定数据查询信息。可以是SQL语句、存储过程。
(2)CommandType:指定数据查询的类型。可以取四种设定值。
(3)ActiveConnection:建立与Connection通道的链接关系。
方法:
(1)Createparameter:建立一个新的参数对象。
(2)Execute:对数据库提出数据查询。Command对象可以用Createparameter方法建立新的参数对象,再用parameters对象的append方法将新的参数对象增加到parameters数据集合里。执行结果是:建立一个参数名为合同编号,数据类型为字符型,长度为10,参数允许的读写模式为输入,参数值为“1000030005”的参数对象,然后将此参数加入parameters数据集合。
Command对象是用Execute方法执行数据库查询的,Execute方法允许传入指定的参数,从而达到动态数据查询。

二、用command对象实现动态数据查询的几种方法
用command对象实现动态数据查询首先要求commandtext属性值必须是一个带有参数的SQL指令或者是带有参数的存储过程,这里所指的参数必须是查询信息中允许传入值的部分。再者就是调用带有参数值数组的execute方法(格式三)或者是将参数值存放到command对象的parameters数据集合里,再调用Command对象的execute方法。
Command对象可以拥有多个parameter子对象来存储相关的参数,它们都属于parameters数据集合。用如下方法可以将参数值写入parameters数据集合。
假设已经存在一个SQL Server数据库bcdata,其中有一个数据表为gcht,数据字段有3个,分别是gchtbh(工程合同编号)、gcmc(合同名称)、htje(合同金额)。用command对象查询1999年度和2000年度的工程合同简况。
(1)调用parameters的refresh方法,得到符合commandtext属性的所有parameter子对象,再将已知的参数值存放到对应的子对象中即可。
(2)调用command对象的createparameter方法,建立一个新的parameter对象,并依附在command对象内的parameters数据集合内。然后调用parameters数据集合的append方法加入新的parameter子对象至数据集合内。

结束语
ADO的connection对象是用execute方法提交数据查询信息,recordset对象是用open方法提交数据查询信息,虽然它们提交的数据查询信息可以包含变量但毕竟不是真正意义上的参数传递,另外在组合带有变量的SQL指令时还容易出错,最重要的是它们不支持提交的数据查询信息中含有备注型的字段。不论是参数型数据查询信息还是存储过程,command对象的地位都是十分重要的,只要command对象运用得好,对整体数据库网页的设计会增加不少的灵活性和方便性。