注册 登录
编程论坛 ASP技术论坛

下面的存储过程中有一句代码不理介,请教。

sylknb 发布于 2012-05-10 16:02, 270 次点击
从数据库表中取得一个记录或计算一个值时,需要使用返回输出参数的存储过程。为了举例,先在SQL Server的pubs库中新建一存储过程OUTemploy,该存储过程需要输入两个日期,然后输出一个最大值。
CREATE PROCEDURE OUTemploy
(
@job_lvl tinyint OUTPUT,
@hire_date1 datetime,
@hire_date2 datetime
)
AS
select @job_lvl = MAX(job_lvl) from employee
where hire_date >= @hire_date1 and hire_date <= @hire_date2   此句代码表示什么?最后显示结果是198,如何得来的?

Dim cmdTest, prmTest
Set cmdTest = Server.CreateObject(")
cmdTest.ActiveConnection = Cnn
= "OUTemploy"    '存储过程名
= adCmdStoredProc

'创建 Parameter 对象
Set prmTest = cmdTest.CreateParameter("job_lvl",adTinyInt,adParamOutput)
cmdTest.Parameters.Append prmTest
'adTinyInt - 1 字节带符号整型
'adDbDate - 日期值 (yyyymmdd)

Set prmTest = cmdTest.CreateParameter("hiredate1",adDBDate,adParamInput,,"1993-05-09")
cmdTest.Parameters.Append prmTest

Set prmTest = cmdTest.CreateParameter("hiredate2",adDBDate,adParamInput,,"1994-02-01")
cmdTest.Parameters.Append prmTest

cmdTest.Execute
Response.Write cmdtest("job_lvl") & "<br>"
Response.Write cmdTest.Parameters("job_lvl") & "<br>"
Response.Write cmdTest.Parameters("job_lvl").Value

Cnn.close
Set prmTest = Nothing
Set cmdTest = Nothing: Set Cnn = Nothing

2 回复
#2
yms1232012-05-10 16:54
select @job_lvl = MAX(job_lvl) from employee
where hire_date >= @hire_date1 and hire_date <= @hire_date2
两个日期的差值?这么写居然不出错误.....
#3
sylknb2012-05-10 18:29
这是网上及书上的流行的一个例子:是求该存储过程需要输入两个日期,然后输出一个最大值。看不懂它的表示,是二个日期的差值还是这二个日期中最大的一个日期?它的198表示什么?附上源代码,请行家指教。
只有本站会员才能查看附件,请 登录

1