一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP教程 - 在ASP中調用存儲過程的幾種方法

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

2019-11-01 13:06asp教程網(wǎng) ASP教程

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

1 這也是最簡單的方法,兩個輸入?yún)?shù),無返回值: 
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的函數(shù)返回值那樣;另一種是可以返回多個值,存儲這些值的變量名稱需要在調用參數(shù)中先行指定。 
這個例子要處理多種參數(shù),輸入?yún)?shù),輸出參數(shù),返回記錄集以及一個直接返回值(夠全了吧?) 
存儲過程如下: 

use pubs 
GO 

-- 建立存儲過程 
create procedure sp_PubsTest 

-- 定義三個參數(shù)變量,注意第三個,特別標記是用于輸出 
@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 對象中加參數(shù) 
'定義存儲過程有直接返回值,并且是個整數(shù),省缺值是4 
CmdSP.Parameters.Append CmdSP.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 4) 
'定義一個字符型輸入?yún)?shù) 
CmdSP.Parameters.Append CmdSP.CreateParameter("@au_lname", adVarChar, adParaminput, 20, "M") 
'定義一個整型輸入?yún)?shù) 
CmdSP.Parameters.Append CmdSP.CreateParameter("@intID", adInteger, adParamInput, , iVal) 
'定義一個整型輸出參數(shù) 
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 
%> 

此外還有其他方式,稍微偏門一些,以后慢慢再說 
本文參考了多篇文章,這里不一一列出。 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 好男人资源大全免费观看 | 3d动漫美女被吸乳羞羞有 | 国产精品亚洲综合久久 | 好大好硬好长好爽a网站 | 污污在线免费观看 | 超逼网| 亚洲激情 欧美 | 国产亚洲精品看片在线观看 | 嗯啊视频在线观看 | 久久内在线视频精品mp4 | 亚洲另类中文字幕 | 午夜香蕉成视频人网站高清版 | 91桃花视频| 欧美亚洲天堂 | 日本aa大片在线播放免费看 | 1769国产精品免费视频 | 成年男女免费视频 | 希望影院高清免费观看视频 | 免费一级特黄特色大片∵黄 | 四虎影院最新网址 | 亚洲一级视频在线观看 | 日本精品中文字幕在线播放 | 韩国黄色网址 | 深夜免费在线视频 | 亚洲精品国产成人99久久 | porono日本人xxx | 天天操天天做 | 深夜福利软件 | 美女脱了内裤打开腿让人桶网站o | 边摸边吃奶又黄激烈视频韩国 | 国产在线观看精品 | 日本hd18 | avav一区 | 日韩一级片在线免费观看 | 性夜影院午夜看片 | 午夜免费啪视频观看视频 | 亚洲国产精品一区二区首页 | 亚洲国产日韩制服在线观看 | 我被男人下药添得好爽 | 236宅宅2021最新理论 | 亚洲精品综合一区二区 |