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