标题:下面的存储过程中有一句代码不理介,请教。
只看楼主
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
结帖率:79.3%
已结贴  问题点数:20 回复次数:2 
下面的存储过程中有一句代码不理介,请教。
从数据库表中取得一个记录或计算一个值时,需要使用返回输出参数的存储过程。为了举例,先在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

搜索更多相关主题的帖子: 存储 计算 数据库表 最大值 如何 
2012-05-10 16:02
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:14 
select @job_lvl = MAX(job_lvl) from employee
where hire_date >= @hire_date1 and hire_date <= @hire_date2
两个日期的差值?这么写居然不出错误.....
2012-05-10 16:54
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
这是网上及书上的流行的一个例子:是求该存储过程需要输入两个日期,然后输出一个最大值。看不懂它的表示,是二个日期的差值还是这二个日期中最大的一个日期?它的198表示什么?附上源代码,请行家指教。
存储.rar (1.73 KB)

2012-05-10 18:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-367291-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.110440 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved