開(kāi)發(fā)技巧與難點(diǎn)分析
1.10.1 使用call語(yǔ)句調用SQL Server存儲過(guò)程
存儲過(guò)程中的內容是經(jīng)編譯后存儲在數據庫中的,所以執行時(shí)不必再次進(jìn)行編譯,從而提高了程序的執行效率。用戶(hù)通過(guò)指定存儲過(guò)程的名字或者給出相應參數來(lái)調用執行它。在A(yíng)SP中不但可以通過(guò)Command對象來(lái)調用SQL Server存儲過(guò)程,還可以使用call語(yǔ)句調用SQL Server存儲過(guò)程,其語(yǔ)法如下:
{CALL procname (參數1,參數2,…)}
procname:表示存儲過(guò)程的名稱(chēng)。
例如,通過(guò)調用SQL Server存儲過(guò)程User_proc來(lái)查詢(xún)用戶(hù)基本信息表tb_user和用戶(hù)等級信息表tb_level中的相關(guān)字段信息。代碼如下:
%
Set rs=Server.CreateObject("ADODB.Recordset") '創(chuàng )建Recordset對象實(shí)例,命名為rs
sqlstr="{call User_proc}" '使用call語(yǔ)句調用存儲過(guò)程
rs.open sqlstr,conn,1,1 '打開(kāi)記錄集rs
While Not rs.eof '在記錄集不為空的情況下,遍歷記錄集中的數據
%>
<tr align="center" bgcolor="#FFFFFF">
<td height="22"><%=rs("UserName")%></td> '顯示用戶(hù)名稱(chēng)
<td height="22"><%=rs("ULevel")%></td> '顯示用戶(hù)級別
<td height="22"><%=rs("Utel")%></td> '顯示用戶(hù)聯(lián)系方式
</tr>
<%rs.movenext '調用Recordset對象的movenext方法使記錄指針向下移動(dòng)
Wend
rs.close '關(guān)閉記錄集rs
Set rs=Nothing '釋放rs所占用的資源
%>
其中,存儲過(guò)程User_proc中的代碼如下:
CREATE procedure User_proc as select a.UserName,
b.ULevel ,a.Utel from tb_user as a inner join tb_level
as b on a.UserName=b.UserName
GO
【責任