ado.net总结:WebComputing━ADO总结报告4



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

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

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

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对象相应属性和思路方法类似下面给出个举例:
constadCmdText=&H0001
constadInteger=3
constadVarChar=200
ConstadParamInput=&H0001
conn=Server.CreateObject(\"ADODB.Connection\")
comm=Server.Createobject(\"ADODB.Command\")
conn.open\"Driver={MicrosoftAccessDriver(*.mdb)};DBQ=\"&_
Server.Mappath(\"/source_asp\")&\"/property/employee.mdb;\"
comm.ActiveConnection=conn
comm.CommandType=adCmdText
comm.CommandText=\"InsertIntoemployee(Job_ID,Fri_Name,Last_Name)\"&_
\"Values(?,?,?);\"
param=comm.CreateParameter(\"ID\",adInteger,adParamInput,3)
param.value=14
comm.Parameters.Appendparam
param=comm.CreateParameter(\"FN\",adVarChar,adParamInput,255,\"bill\")
comm.Parameters.Appendparam
param=comm.CreateParameter(\"LN\",adVarChar,adParamInput,255,\"Gates\")
comm.Parameters.Appendparam
comm.Execute
conn.close
\"Thefolowingstatmentsshowthevalueofparametrs


dimi
fori=0tocomm.parameters.count-1
response.writecomm.parameters.item(i)&\"<br>\"
next
  当然我们在引用参数时也可以不用数字而用前面在CreateParameter时定义名字例如:FN、ID等等另外我们可以将上面显示部分改为
dimkey
foreachkeyincomm.parameters
response.writekey&\"<br>\"
next
  下面我想重点讲讲StoredProcedure强大足以让我们对它关注当然这其中会涉及到些SQLServer知识
Tags:  ado.net总结

延伸阅读

最新评论

发表评论