ASP呼叫帶引數儲存過程的幾種方式

2021-04-01 19:58:50 字數 2887 閱讀 8035

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

asselect @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=;server=(local);uid=sa;pwd=;database=pubs"

'定義command 物件呼叫名稱

cmdsp.commandtext = "sp_pubstest"

'設定command呼叫型別是儲存過程 (adcmdspstoredproc = 4)

cmdsp.commandtype = adcmdspstoredproc

'往command 物件中加引數

'定義儲存過程有直接返回值,並且是個整數,省缺值是4

'定義乙個字元型輸入引數

'定義乙個整型輸入引數

'定義乙個整型輸出引數

'執行儲存過程,並得到返回記錄集

set adors = cmdsp.execute

'把每個記錄列印出來,其中的字段是虛擬的,可以不用管

while not adors.eof

for each adofield in adors.fields

response.write adofield.name & "=" & adofield.value & "

" & vbcrlf

next

response.write "

"adors.movenext

wend

'列印兩個輸出值:

response.write "@intidout = 「 & cmdsp.parameters("@intidout").value & "

"response.write "return value = " & cmdsp.parameters("return_value").value & "

"'大掃除

set adors = nothing

set cmdsp.activeconnection = nothing

set cmdsp = nothing

%>

ASP呼叫帶引數儲存過程的幾種方式

最近有很多的朋友問到呼叫儲存過程的問題,這裡簡單介紹幾種asp呼叫帶引數儲存過程的方法。1 這也是最簡單的方法,兩個輸入引數,無返回值 set connection server.createobject adodb.connection connection.open somedsn connec...

儲存過程如何呼叫帶引數的儲存過程

declare value varchar max exec tmfun getsearchstr 陝西 table1 name value output select from users where address value 顯示結果為 解釋 其中,tmfun getsearchstr 為儲存...

asp呼叫儲存過程

1.呼叫儲存過程的一般方法 先假設在sql server中有一儲存過程dt users create procedure dbo dt users as select from users return go 第一種方法是不利用command物件,直接用recordset物件 set rs serv...