parameter 对象的怪事

代码如下:
dim cmd,param
Set cmd = Server.CreateObject("ADODB.Command")

cmd.ActiveConnection = session("cnn")
cmd.CommandText = "oilperkm"
cmd.CommandType = 4
cmd.Prepared = True

'创建 Parameter 对象,将数据追加到 Parameters 数据集合中
Set param=cmd.CreateParameter("startDate",200,1)--这句报错!!!!
cmd.Parameters.Append param

报错信息:
错误类型:
ADODB.Parameters (0x800A0E7C)

我这个语法优问题吗?不会吧!看别人都这样写的。
这个问题搞了我一天了!大家一定帮帮我!

---------------------------------------------------------------

adCmdSPStoredProc = 4
adParamReturnValue = 4
adParaminput = 1
adParamOutput = 2

'set cmd=server.CreateObject("adodb.command")
'set cmd.ActiveConnection=cnn
'cmd.CommandText="{call aaa(?)}"
'cmd.Parameters.Append cmd.CreateParameter("@aa",adInteger ,adParamInput )
'cmd("@aa")=3
'set rs=cmd.Execute()
'if rs.eof then

'else
'
'end if
---------------------------------------------------------------

问题:Set param=cmd.CreateParameter("startDate",200,1)--这句报错!!!!
解答:这句当然有错,CreateParameter有5个参数,你只写了3个,当然,输出就4个。
示范:Set param=cmd.CreateParameter("startDate",200,adParamInput,数据长度,变量)
或Set param=cmd.CreateParameter("startDate",200,adParamInput,数据长度)
cmd.Parameters("startDate")=变量
---------------------------------------------------------------

1@ Language="vbscript" 
 1sub sql() '存储过程调用   
 2const adchar=129'参数类型   
 3const adcmdtext=1'命令类型   
 4const adparaminput=1'操作方向   
 5  
 6'更改数据库名字   
 7db="test.mdb"   
 8Set conn = Server.CreateObject("ADODB.Connection")   
 9connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)   
10Conn.Open connstr   
11Set Comm=Server.CreateObject("ADODB.Command")   
12Comm.ActiveConnection=Conn'数据库连接   
13Comm.CommandText = "Insert into friends values(7,?,?,?,?)"'要执行的命令   
14Comm.CommandType = adCmdText'操作参数,相当于open打开的参数一样   
15'-1 类型不确定,这是缺省值   
16'1 一般命令。文本SQL命令   
17'2 一个存在的表名称   
18'3 一个存在的过程名(Stored Procedure)   
19  
20  
21Set param = comm.CreateParameter("name",adChar,adParamInput,6,"李哓红")   
22Comm.Parameters.append param   
23Set param = comm.CreateParameter("sex",adChar,adParamInput,2,"女")   
24Comm.Parameters.append param   
25Set param = comm.CreateParameter("birthday",adChar,adParamInput,9,"1978.5.30")   
26Comm.Parameters.append param   
27Set param = comm.CreateParameter("age",adChar,adParamInput,2,"22")   
28Comm.Parameters.append param   
29Comm.Execute   
30  
31'记录添加后显示所有记录以观看Execute后的结果   
32Set rs=Conn.Execute("select* from friends",10,1)   
33Response.Write "

<a href="vbscript:history.back()">返回</a>

<br/>

1"   
2Response.Write "

<table border="2">"
Response.Write "<tr>"
for i=0 to rs.fields.Count-1 '输出表头
Response.Write "<td>" &amp;Ucase(rs(i).name) &amp; "</td>"
Next
Do While not rs.Eof '输出记录
Response.Write "<tr>"
for i=0 to rs.fields.Count-1 '输出表行
Response.Write "<td>" &amp; rs(i).value &amp; "</td>"
Next
Response.Write "</tr>"
rs.MoveNext
Loop
rs.close
conn.close
end sub

Published At
Categories with Web编程
comments powered by Disqus