高分求解:如何给存储过程赋日期参数?

lois1 2002-07-29 04:39:08
如何给存储过程赋日期参数?
程序代码如下:

<!--#include file="../../dbcnn.asp"-->
<%
const advarChar = 200
const adParamInput = 1
const adParamOutput = 2
const adDBDate = 133

const adcmdText = 1
const adSmallInt = 2
const adCurrency = 6

Dim Do_Msg
curr_date=date()
curr_date=cdate(curr_date)
usr_id="1234"
deadline="25"
set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.commandText = "mfee_cost_one_3"
set param = md.CreateParameter "usr_id",adVarChar,adParamInput,6,usr_id)
cmd.Parameters.append Param
set param = cmd.CreateParameter ("@deadline",varchar,135,16,deadline)
'上面这一行总是出错
cmd.Parameters.append Param
set param = cmd.CreateParameter "@curr_datetime",varchar,135,16,curr_date)
cmd.Parameters.append Param
set param = cmd.CreateParameter ("Do_Msg",varchar,adParamOutput,6,Do_Msg)
cmd.Parameters.append Param
set rs=cmd.Execute
%>
<%Do_msg%>
存储过程如下:
create proc mfee_cost_one_3

@curr_datetime datetime,
@usr_id varchar(6),
@deadline varchar(20),
@Do_Msg varchar(80) output

as
select @Do_Msg='aaaaaaaaa'
select @curr_datetime as 'curr_datetime',@usr_id as 'usr_id',@deadline as 'deadline'
go

...全文
19 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyl 2002-07-29
谢谢!各位大虾!

Do_msg=cmd("@Do_Msg")可以获得存储过程的返回值。
回复
cyl 2002-07-29
使用这个方法执行
Do_msg=cmd("@Do_Msg")

这个方法是获得初始值
Do_Msg=cmd.parameters("@Do_Msg").value


回复
freezwy 2002-07-29
使用这个方法执行
cmd.Execute
Do_Msg=cmd.parameters("@Do_Msg").value
回复
lois1 2002-07-29
不好意思 我的程序bug比较多,
以下是没有bug的,日期类型参数调通了,但是现在又有问题了。

存储过程的返回变量@do_msg。无法返回值?

<!--#include file="../../dbcnn.asp"-->
<%
const advarChar = 200
const adParamInput = 1
const adParamOutput = 2
const adDBDate = 133

const adcmdText = 1
const adSmallInt = 2
const adCurrency = 6
const adDBTimeStamp = 135
Dim Do_Msg
curr_date=date()
curr_date=cdate(curr_date)
usr_id="1234"
deadline="25"
set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.commandText = "mfee_cost_one_3"
set param = cmd.CreateParameter ("@curr_datetime",adDBTimeStamp,adParamInput,8,curr_date) '这一行总是出错
cmd.Parameters.append Param
set param = cmd.CreateParameter ("usr_id",adVarChar,adParamInput,6,usr_id)
cmd.Parameters.append Param
set param = cmd.CreateParameter ("deadline",adVarChar,adParamInput,6,deadline)
cmd.Parameters.append Param
set param = cmd.CreateParameter ("Do_Msg",adVarChar,adParamOutput,80,Do_Msg)
cmd.Parameters.append Param
set rs=cmd.Execute

%>
<%=Do_msg%><BR>

存储过程如下:
create proc mfee_cost_one_3

@curr_datetime datetime,
@usr_id varchar(6),
@deadline varchar(6),
@Do_Msg varchar(80) output
as

select @Do_Msg='aaaaaaaaa'
回复
huguangwu 2002-07-29
set param = md.CreateParameter "usr_id",adVarChar,adParamInput,6,usr_id)

应该是cmd吧

datetime是8
回复
lois1 2002-07-29
谢谢!帮了我一个大忙。
回复
kmlinda 2002-07-29
试试用date代替varchar
回复
freezwy 2002-07-29
使用类型是adDBTimeStamp,长度8
你的第一个参数的语句应该是CMD,不是MD
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告