|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的ado|web4、Command工具:
从英语字面的意义就能够看出,Command是用来做命令实行和参数传送的。而Command工具的批量参数传送,StoredProcude实行等等天真而壮大的功效也是它遭到喜爱的缘故原由。Command工具次要是向SQL语句、StoredProcude传送参数,依托SQLServer的壮大功效来完成数据库的操纵;而RecordSet工具能够说是微软重新封装了数据工具,并供应了一系列的办法和属性来简化数据库的编程。我们看上面的一个例子,它用了两种分歧的办法完成了向数据库中增添一新的纪录条。从中能够分明的看到Command工具与RecordSet工具的分歧点。
办法1(Command)
constadCmdText=&H0001
constadInteger=3
constadVarChar=200
constadParamInput=&H0001
setconn=Server.CreateObject("ADODB.Connection")
setcomm=Server.Createobject("ADODB.Command")
conn.open"Driver={MicrosoftAccessDriver};DBQ="&_
Server.Mappath("/source_asp")&"/property/employee.mdb;"
comm.ActiveConnection=conn
comm.CommandType=adCmdText
comm.CommandText="insertintoemployee(Job_ID,Fri_Name,Last_Name)"&_
&"values(?,?,?)"
setparam=comm.CreateParameter("ID",adInteger,adParamInput,3,4)
comm.Parameters.Appendparam
setparam=comm.CreateParameter("FN",adVarChar,adParamInput,255,"bill")
comm.Parameters.Appendparam
setparam=comm.CreateParameter("LN",adVarChar,adParamInput,255,"Gates")
comm.Parameters.Appendparam
comm.Execute
conn.close
办法2(RecordSet)
constadCmdTable=&H0002
setconn=Server.CreateObject("ADODB.Connection")
setrs=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.addnew
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)
和
setparam=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
setconn=Server.CreateObject("ADODB.Connection")
setcomm=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(?,?,?);"
setparam=comm.CreateParameter("ID",adInteger,adParamInput,3)
param.value=14
comm.Parameters.Appendparam
setparam=comm.CreateParameter("FN",adVarChar,adParamInput,255,"bill")
comm.Parameters.Appendparam
setparam=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的常识
</p>ASP脚本是采用明文(plaintext)方式来编写的。 |
|