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

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

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

服務器之家 - 編程語言 - ASP教程 - ASP調用帶參數存儲過程的幾種方式

ASP調用帶參數存儲過程的幾種方式

2019-10-18 11:15asp教程網 ASP教程

最近有很多的朋友問到調用存儲過程的問題,這里簡單介紹幾種ASP調用帶參數存儲過程的方法。

最近有很多的朋友問到調用存儲過程的問題,這里簡單介紹幾種ASP調用帶參數存儲過程的方法。 

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 
%> 


asp調用數據庫存儲過程     選擇自 11830 的 Blog   
關鍵字   asp,數據庫,存儲過程  
出處     

asp調用數據庫存儲過程     

<%Set Dataconn = Server.CreateObject("ADODB.Connection")  
'建立連接對象 
Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R) Developer Studio;WSID=APP_SERVER;Regional=Yes" 
Set cmdTemp = Server.CreateObject("ADODB.Command") 
'建立命令對象 
Set rst = Server.CreateObject("ADODB.Recordset")  
'建立記錄集對象 
cmdTemp.CommandText = "dbo.pd_test" '存儲過程名稱 
cmdTemp.CommandType = 4  
'命令類別為4,表示為存儲過程 
Set cmdTemp.ActiveConnection = Dataconn 
Set tmpParam = cmdTemp.CreateParameter("Return Value", 3, 4, 4) 
cmdTemp.Parameters.Append tmpParam 
Set tmpParam = cmdTemp.CreateParameter("@BeginDate", 135, 1, 16, riqi)  
'創建輸入參數對象 
cmdTemp.Parameters.Append tmpParam 
rst.Open cmdTemp, , 1, 3     
'生成查詢結果 
%> 
這里調用的存儲過程為pd_test,這種是ADO中提供的標準方法,但存在一個問題,就是當在存儲過程中有兩個以上的SELECT語句,但從邏輯上又不可能同時執行的時候,ADO會提示你存儲過程中SELECT語句太多,解決方法是直接用ADO的CONNECTION對象的EXECUTE方法直接執行存儲過程,如下: 
<% 
Set Dataconn = Server.CreateObject("ADODB.Connection")  
'建立連接對象 
Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R) Developer Studio;WSID=APP_SERVER;Regional=Yes" 
ss = "EXECUTE dbo.pd_test " & "'" & riqi1 & "'"  
Set rs = dataconn.Execute(ss) 
%>    

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美精品国产一区二区三区 | 国产亚洲女在线精品 | 日韩激情视频在线观看 | 欧美草逼视频 | 亚洲国产精品二区久久 | 射逼网站 | 久久精品久久久久 | 国产做a爰片久久毛片 | 全肉一女n男np高h乳 | 欧美生活一级片 | 色啪久久婷婷综合激情 | 免费全看男女拍拍拍的视频 | 草草影院永久在线观看 | 色偷偷伊人 | futa百合高肉全h | 日韩一区二三区无 | 深夜福利影院在线观看 | 国产精品俺来也在线观看了 | 国产精品一区牛牛影视 | 亚洲精品www久久久久久 | 欧美在线成人免费国产 | 国产精品久久免费观看 | 亚洲国产在线99视频 | 高清国语自产拍免费视频国产 | 国产精品视频免费一区二区三区 | 男人的天堂在线观看视频不卡 | tobu8在线观看免费高清 | 国产精品林美惠子在线观看 | 好姑娘完整版在线观看中文 | 国内精品在线观看视频 | 久久久久久久尹人综合网亚洲 | 久久综合中文字幕佐佐木希 | 高人先生免费观看全集 | 日韩高清一区二区 | 日本高清在线不卡 | 欧美同志网址 | 俄罗斯三级完整版在线观看 | 欧美一级在线视频 | 国产美女亚洲精品久久久久久 | 精品亚洲一区二区三区在线播放 | 国产成人精品免费 |