代码如下:
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>" &Ucase(rs(i).name) & "</td>"
Next
Do While not rs.Eof '输出记录
Response.Write "<tr>"
for i=0 to rs.fields.Count-1 '输出表行
Response.Write "<td>" & rs(i).value & "</td>"
Next
Response.Write "</tr>"
rs.MoveNext
Loop
rs.close
conn.close
end sub