国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

在ASP中調用存儲過程的幾種方法

2024-05-04 11:07:58
字體:
來源:轉載
供稿:網友
1 這也是最簡單的方法,兩個輸入參數,無返回值: 
set connection = server.createobject("adodb.connection") 
connection.open someDSN 
Connection.Execute "procname varvalue1, varvalue2" 

'將所有對象清為nothing,釋放資源 
connection.close 
set connection = nothing 


2 如果要返回 Recordset 集: 
set connection = server.createobject("adodb.connection") 
connection.open someDSN 
set rs = server.createobject("adodb.recordset") 
rs.Open "Exec procname varvalue1, varvalue2",connection 

'將所有對象清為nothing,釋放資源 
rs.close 
connection.close 
set rs = nothing 
set connection = nothing 


3 以上兩種方法都不能有返回值,(Recordset除外),如果要得到返回值,需要用Command的方法。 
首先說明,返回值有兩種。一種是在存儲過程中直接return一個值,就象C和VB的函數返回值那樣;另一種是可以返回多個值,存儲這些值的變量名稱需要在調用參數中先行指定。 
這個例子要處理多種參數,輸入參數,輸出參數,返回記錄集以及一個直接返回值(夠全了吧?) 
存儲過程如下: 

use pubs 
GO 

-- 建立存儲過程 
create procedure sp_PubsTest 

-- 定義三個參數變量,注意第三個,特別標記是用于輸出 
@au_lname varchar (20), 
@intID int, 
@intIDOut int OUTPUT 

AS 

SELECT @intIDOut = @intID + 1 

SELECT * 
FROM authors 
WHERE au_lname LIKE @au_lname + '%' 

--直接返回一個值 
RETURN @intID + 2 


調用該存儲過程的asp程序如下: 

<%@ Language=VBScript %> 
<% 
Dim CmdSP 
Dim adoRS 
Dim adCmdSPStoredProc 
Dim adParamReturnValue 
Dim adParaminput 
Dim adParamOutput 
Dim adInteger 
Dim iVal 
Dim oVal 
Dim adoField 
Dim adVarChar 

‘這些值在 VB 中是預定義常量,可以直接調用,但在 VBScript 中沒有預定義 
adCmdSPStoredProc = 4 
adParamReturnValue = 4 
adParaminput = 1 
adParamOutput = 2 
adInteger = 3 
adVarChar = 200 

iVal = 5 
oVal = 3 

'建一個command對象 
set CmdSP = Server.CreateObject("ADODB.Command") 

'建立連結 
CmdSP.ActiveConnection = "Driver={SQL Server};server=(local);Uid=sa;Pwd=;Database=Pubs" 

'定義command 對象調用名稱 
CmdSP.CommandText = "sp_PubsTest" 

'設置command調用類型是存儲過程 (adCmdSPStoredProc = 4) 
CmdSP.CommandType = adCmdSPStoredProc 

'往command 對象中加參數 
'定義存儲過程有直接返回值,并且是個整數,省缺值是4 
CmdSP.Parameters.Append CmdSP.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 4) 
'定義一個字符型輸入參數 
CmdSP.Parameters.Append CmdSP.CreateParameter("@au_lname", adVarChar, adParaminput, 20, "M") 
'定義一個整型輸入參數 
CmdSP.Parameters.Append CmdSP.CreateParameter("@intID", adInteger, adParamInput, , iVal) 
'定義一個整型輸出參數 
CmdSP.Parameters.Append CmdSP.CreateParameter("@intIDOut", adInteger, adParamOutput, oVal) 

'運行存儲過程,并得到返回記錄集 
Set adoRS = CmdSP.Execute 


'把每個記錄打印出來,其中的字段是虛擬的,可以不用管 
While Not adoRS.EOF 

for each adoField in adoRS.Fields 
Response.Write adoField.Name & "=" & adoField.Value & "<br>" & vbCRLF 
Next 
Response.Write "<br>" 
adoRS.MoveNext 
Wend 

'打印兩個輸出值: 
Response.Write "<p>@intIDOut = “ & CmdSP.Parameters("@intIDOut").Value & "</p>" 
Response.Write "<p>Return value = " & CmdSP.Parameters("RETURN_VALUE").Value & "</p>" 


'大掃除 
Set adoRS = nothing 
Set CmdSP.ActiveConnection = nothing 
Set CmdSP = nothing 
%> 

此外還有其他方式,稍微偏門一些,以后慢慢再說 
本文參考了多篇文章,這里不一一列出。 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 景泰县| 高碑店市| 安图县| 来宾市| 宝鸡市| 靖安县| 台东县| 丰城市| 田阳县| 泽普县| 长白| 古交市| 玛多县| 温宿县| 工布江达县| 和硕县| 体育| 彰武县| 滦平县| 冕宁县| 巴塘县| 灌云县| 邻水| 泸水县| 晋城| 泰宁县| 乐平市| 蒙山县| 青海省| 门头沟区| 许昌市| 寻甸| 花莲县| 三亚市| 通辽市| 昭通市| 化隆| 稷山县| 武川县| 武川县| 靖边县|