WebComputing━ADO总结报告4

ado|web

四、Command对象:
  从英语字面的意思就可以看出,Command是用来做命令执行和参数传递的。而Command对象的批量参数传递,StoredProcude执行等等灵活而强大的功能也是它受到青睐的原因。Command对象主要是向SQL语句、StoredProcude传递参数,依靠SQL Server的强大功能来完成数据库的操作;而RecordSet对象可以说是微软从新封装了数据对象,并提供了一系列的方法和属性来简化数据库的编程。我们看下面的一个例子,它用了两种不同的方法实现了向数据库中增加一新的记录条。从中可以清楚的看到Command对象与RecordSet对象的不同点。
方法1(Command)
const adCmdText=&H0001
const adInteger=3
const adVarChar=200
const adParamInput = &H0001
set conn=Server.CreateObject("ADODB.Connection")
set comm=Server.Createobject("ADODB.Command")
conn.open "Driver={ Microsoft Access Driver};DBQ="& _
Server.Mappath("/source_asp")&"/property/employee.mdb;"
comm.ActiveConnection=conn
comm.CommandType=adCmdText
comm.CommandText="insert into employee (Job_ID,Fri_Name,Last_Name)"& _
&"values(?,?,?)"
set param=comm.CreateParameter("ID",adInteger,adParamInput,3,4)
comm.Parameters.Append param
set param=comm.CreateParameter("FN",adVarChar,adParamInput,255,"bill")
comm.Parameters.Append param
set param=comm.CreateParameter("LN",adVarChar,adParamInput,255,"Gates")
comm.Parameters.Append param
comm.Execute
conn.close

方法2(RecordSet)
const adCmdTable=&H0002
set conn=Server.CreateObject("ADODB.Connection")
set rs=Server.Createobject("ADODB.RecordSet")
conn.open "Driver={Microsoft Access Driver (*.mdb)};DBQ="& _
Server.Mappath("/source_asp")&"/property/employee.mdb;"
rs.ActiveConnection=conn
rs.open "employee",,,adCmdTable
rs.addnew
rs("Job_ID")=4
rs("Fri_Name")="bill"
rs("Last_Name")="Gates"
rs.update
rs.close
conn.close
  从上面的例子就可以看出来了,这两个对象在处理一些问题上所用的不同的方法.RecordSet对象似乎更加好理解一些,因为它加入了一些在ANSI SQL中没有的元素,它其实是用 SQL在数据库上产生一个记录集,然后用一个游标来指向这个记录集,超作该游标来遍历这个记录集。但在性能上来讲的话Command的性能也相对要优越些.其可重应用性也非常的好。而且如果你是批量的加入记录的话,你也能体会到第一种方案的好处了,因为Command对象就是将SQL产生的记录集作为整体来处理。下面详细介绍Command对象的属性、方法和集合。

   1、 CreateParameter方法:用来产生一个Parameter对象,常用的写法为Set param=comm.CreateParameter(name,type,direction,size,value),其中name为参数的引用名,在后面引用参数的值时会有用;type为指定参数的类型,例如整数为adInteger;direction指定参数是输入还是输出,相应的值为adParamInput和adParamOutput;size指定参数的最大长度或最大的值;value指定参数的值。可以将各个选项分开来写,下面的两种写法是等价的:
Set param= comm.CreateParameter(name,type,direction,size,value)

set param= comm.CreateParameter(name,type,direction,size)
param.value=value
  下面的方法其灵活性更大。大家请注意,在使用了CreateParameter方法后只是建立了新的 parameter对象,还需使用Parameter对象的append方法将该参数传递给Command对象。
  2、 Execute方法:在指定了CommandText后,并将参数传递出去后,用Execute方法来完成执行。
  3、 ActiveConnection属性:用来指定与Connection对象的连接,这里的一个技巧就是不同的Command对象指向同一个Connection连接。
  4、 CommandText属性:其值可以是一条SQL命令句,可以是一个表名,也可以是一个StoredProcedure名。
  5、 CommandType属性:它的值由CommandText相应值的给出,分别为adCmdText,adCmdTable,adCmdStoredProc。与前面在讲Connection对象的Execute方法中的相应的选项的含义相同。
  6、 CommandTimeOut属性:设定命令执行的超时的值。
  7、 Properties集合:我们不多讲了,与Connection对象的Property集合相差不多。
  8、 Parameters集合:也就是参数对象的集合了,他有主要Item方法、Append方法,和Count属性,用法与Property对象及Error对象的相应属性和方法类似,下面给出一个示例:
const adCmdText=&H0001
const adInteger=3
const adVarChar=200
Const adParamInput = &H0001
set conn=Server.CreateObject("ADODB.Connection")
set comm=Server.Createobject("ADODB.Command")
conn.open "Driver={Microsoft Access Driver (*.mdb)};DBQ="& _
Server.Mappath("/source_asp")&"/property/employee.mdb;"
comm.ActiveConnection=conn
comm.CommandType=adCmdText
comm.CommandText="Insert Into employee (Job_ID,Fri_Name,Last_Name)"& _
"Values(?,?,?);"
set param=comm.CreateParameter("ID",adInteger,adParamInput,3)
param.value=14
comm.Parameters.Append param
set param=comm.CreateParameter("FN",adVarChar,adParamInput,255,"bill")
comm.Parameters.Append param
set param=comm.CreateParameter("LN",adVarChar,adParamInput,255,"Gates")
comm.Parameters.Append param
comm.Execute
conn.close
"The folowing statments show the value of parametrs
dim i
for i=0 to comm.parameters.count-1
response.write comm.parameters.item(i)&"<br>"
next
  当然,我们在引用参数时也可以不用数字,而用前面在CreateParameter时定义的名字,例如:FN、ID等等。另外我们可以将上面的程序的显示部分改为
dim key
for each key in comm.parameters
response.write key&"<br>"
next
  下面我想重点讲一讲StoredProcedure,它的强大足以让我们对它关注,当然这其中会涉及到一些SQLServer的知识

时间: 2024-11-01 03:03:07

WebComputing━ADO总结报告4的相关文章

WebComputing━ADO总结报告6

ado|web 六.RecordSet对象 写到这一篇的时候,我不禁想到了先贤的两句话,一句是孟子在曹刿论战中所说的:一鼓作气,再而衰,三而竭.这篇ADO总结报告的前五部分都是一鼓作气之作,不知这后面的再而衰部分是否能保持连续了.另外的一句是王安石在游褒禅山记中所说的:世之奇伟.瑰怪.非常之观,常在于险远,而人之所罕至焉,故非有志者不能至也.我们学习编程又何尝不是这样了,若非有志,能及于险远是不能真正掌握的. 好了,讲了这么多的题外话,还是让我们回到正题上来,我想,由于大家对RecordSet都

WebComputing━ADO总结报告3

ado|web 三.Error对象: 前面讲到了Connection对象是用于与各类的数据库进行挂接的,但在此过程中将会出现一些不可预测的错误,因而有了Error这个对象.首先要清楚一个概念,Error对象是在连接数据库时产生的,而并非那些运行时的实时错误.也就是我们常用 On Error Resume Next来忽略到的错误.这些错误将在Err对象中,我们可以用一个统一的模板来集中处理,我会在后面给出一个实例.下面还是先来看Error对象的属性和方法: 1. Count属性:用来统计Error

WebComputing━ADO总结报告2

ado|web 二.Connection对象: 在ADO的模型中,Connection对象是最基本的对象,他主要是提供与数据库的连接.其他的两个对象都是通过它与数据库的连接来完成操作的.它的属性.方法如下所示.Connection对象的主要属性 1. CursorLocation,它的取值有两个,一个是adUseClient,一个是adUseServer(默认),从其英语本身的含义就可以看出,前者是使用客户端的游标,而后者是使用服务器端的游标.二着的差别在于adUseClient游标可以提供供应

WebComputing━ADO总结报告

ado|web 在当今提出的多种动态网页(Dhtml)解决方案中都强调了与数据库的连接,其实网页接挂后台数据库也是当前的热门应用,在电子商务等领域有着广泛的应用.MicroSoft为了适应其发展推出了新的ADO(Active Data Object)模型,通过ODBC的连接可以对当前流行的桌面数据库系统提供方便,快洁的连接.在这里,我想通过ADO在ASP技术中的应用来总结一下ADO对象以及其各自的属性和方法.一.ADO对象模型:下面简单介绍一下ADO的对象模型ADO有三大对象,即Connecti

WebComputing━ADO总结报告5

ado|web 五.StoredProcedure 在讨论StoredProcedure之前,我还要对Command对象的Execute方法的作用进行一下阐述,一般来说使用Command的Execute方法有三个目的.1.用于进行一些简单的处理,例如删除一条记录:comm.CommandType=AdCmdTextcomm.CommandText="Delect From employee Where Job_ID=1"comm.execute 这样的工作不需要返回什么东西.2.用于进

WebComputing━ADO总结报告7

ado|web 实例一:分页显示及导航: 为什么我要再提分页的这个问题呢?因为这是一个最基本的问题,虽然有很多关于分页的文章,但我觉得他们的方法偏于复杂.其实RecordSet的AbsolutePage就可以轻松的实现分页,当你指定了PageSize属性后,对AbsolutePage指定值就可以翻转到指定的页面.但是如果你想使用AbsolutePage的话,你必须在打开RecordSet对象之前将它的CursorLocation值设为adUseClient,这个属性是继承Connection对象

WebComputing━ADO总结报告1

ado|web 在当今提出的多种动态网页(Dhtml)解决方案中都强调了与数据库的连接,其实网页接挂后台数据库也是当前的热门应用,在电子商务等领域有着广泛的应用.MicroSoft为了适应其发展推出了新的ADO(Active Data Object)模型,通过ODBC的连接可以对当前流行的桌面数据库系统提供方便,快洁的连接.在这里,我想通过ADO在ASP技术中的应用来总结一下ADO对象以及其各自的属性和方法.一.ADO对象模型:下面简单介绍一下ADO的对象模型ADO有三大对象,即Connecti

通用权限管理工具,支所有ADO(包括ODBC)支持的数据库,不管用什么编程都行,VC/BCB/VB/PB/Delphi

ado|odbc|编程|数据|数据库 下面是一部分说明: 请细请到这里下载ExeDemo测试版通用权限管理工具的创作动机权限管理是MIS软件中很重要的一环.很多国内较出名的MIS软件厂商都设计了较完善的也具有自己特色的权限管理模块.但对于很多没那么规范的软件商(包括个人或小创作团体),他们经常是接到一单,设计一套权限管理系统,每套都不同:有的则不够重视,随便写上一段,哪里都拷过去用:有的也曾费尽心机,但结果总不能令自己满意.其实仔细想一下,每套软件的权限虽然各不相同,但其实所需实现的功能是相同的

浅析ADO 事件模型

ado "ADO 事件模型"支持某些同步或异步的 ADO 操作,这些操作在其开始之前或完成之后能够引发事件."事件"实际上是对事件处理程序例程的调用. 操作开始前调用的事件处理程序用于检查或修改操作参数,此后可删除操作或使其完成.由于 ADO 2.0 支持异步操作,所以操作完成后调用的事件处理程序特别重要.例如,启动异步Recordset.Open 操作的应用程序在操作完成时,通过执行完毕事件来获得通知. 有两类事件: ConnectionEvents - 当连接的