|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
480615
註冊時間: 2008-04-11 文章: 93
第 1 樓
|
發表於: 星期五 五月 11, 2012 10:22 am 文章主題: 下面的存储过程中有一句代码不理介,请教,先多谢了。 |
|
|
下面是网上流行的关于存储过程的一段代码,其中一句不明白,它的结果应是多少?
从数据库表中取得一个记录或计算一个值时,需要使用返回输出参数的存储过程。为了举例,先在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,如何得来的?两个日 期之间的最大日期值应是1994-01-31,怎么为是198呢?
Dim cmdTest, prmTest
Set cmdTest = Server.CreateObject("ADODB.Command")
cmdTest.ActiveConnection = Cnn
cmdTest.CommandText = "OUTemploy" '存储过程名
cmdTest.CommandType = 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 = Nothinghttp://vfp.sunyear.com.tw/files/n__30721__109.rar |
|
回頂端 |
|
|
LiuRambo
註冊時間: 2007-11-27 文章: 481
第 2 樓
|
發表於: 星期一 五月 14, 2012 2:33 pm 文章主題: |
|
|
select @job_lvl = MAX(job_lvl)
當然是顯示lvl, 日期只是拿來做篩選條件 |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|