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

首頁 > 編程 > ASP > 正文

幾種ASP調(diào)用帶參數(shù)存儲(chǔ)過程的方式_ASP教程

2024-05-04 11:04:01
字體:
供稿:網(wǎng)友

推薦:asp批量錄入數(shù)據(jù)的實(shí)現(xiàn)
批量錄入在數(shù)據(jù)庫的應(yīng)用中比較廣泛的,關(guān)于批量錄入的方法也有好多種。下面我就結(jié)合我實(shí)際中的應(yīng)用,談一下兒我是怎么實(shí)現(xiàn)的。主要用到的是form的集合的概念,通過循環(huán)取的所有的集合內(nèi)數(shù)據(jù)。考慮到大家看著方便,我把它集成到了一個(gè)頁面。 下面是具體的代碼

幾種ASP調(diào)用帶參數(shù)存儲(chǔ)過程的方式

1 這也是最簡(jiǎn)單的方法,兩個(gè)輸入?yún)?shù),無返回值:

set connection = server.createobject("adodb.connection")

connection.open someDSN

Connection.Execute "procname varvalue1, varvalue2"

'將所有對(duì)象清為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

'將所有對(duì)象清為nothing,釋放資源

rs.close

connection.close

set rs = nothing

set connection = nothing

3 以上兩種方法都不能有返回值,(Recordset除外),如果要得到返回值,需要用Command的方法。

首先說明,返回值有兩種。一種是在存儲(chǔ)過程中直接return一個(gè)值,就象C和VB的函數(shù)返回值那樣;另一種是可以返回多個(gè)值,存
儲(chǔ)這些值的變量名稱需要在調(diào)用參數(shù)中先行指定。

這個(gè)例子要處理多種參數(shù),輸入?yún)?shù),輸出參數(shù),返回記錄集以及一個(gè)直接返回值(夠全了吧?)
存儲(chǔ)過程如下:

use pubs

GO

-- 建立存儲(chǔ)過程

create procedure sp_PubsTest

-- 定義三個(gè)參數(shù)變量,注意第三個(gè),特別標(biāo)記是用于輸出

@au_lname varchar (20),

@intID int,

@intIDOut int OUTPUT

AS

SELECT @intIDOut = @intID 1

SELECT *

FROM authors

WHERE au_lname LIKE @au_lname '%'

--直接返回一個(gè)值

RETURN @intID 2

調(diào)用該存儲(chǔ)過程的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 中是預(yù)定義常量,可以直接調(diào)用,但在 VBScript 中沒有預(yù)定義

adCmdSPStoredProc = 4

adParamReturnValue = 4

adParaminput = 1

adParamOutput = 2

adInteger = 3

adVarChar = 200

iVal = 5

oVal = 3

'建一個(gè)command對(duì)象

set CmdSP = Server.CreateObject("ADODB.Command")

'建立連結(jié)

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

'定義command 對(duì)象調(diào)用名稱

CmdSP.CommandText = "sp_PubsTest"

'設(shè)置command調(diào)用類型是存儲(chǔ)過程 (adCmdSPStoredProc = 4)

CmdSP.CommandType = adCmdSPStoredProc

'往command 對(duì)象中加參數(shù)

'定義存儲(chǔ)過程有直接返回值,并且是個(gè)整數(shù),省缺值是4

CmdSP.Parameters.Append CmdSP.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 4)

'定義一個(gè)字符型輸入?yún)?shù)

CmdSP.Parameters.Append CmdSP.CreateParameter("@au_lname", adVarChar, adParaminput, 20, "M")

'定義一個(gè)整型輸入?yún)?shù)

CmdSP.Parameters.Append CmdSP.CreateParameter("@intID", adInteger, adParamInput, , iVal)

'定義一個(gè)整型輸出參數(shù)

CmdSP.Parameters.Append CmdSP.CreateParameter("@intIDOut", adInteger, adParamOutput, oVal)

'運(yùn)行存儲(chǔ)過程,并得到返回記錄集

Set adoRS = CmdSP.Execute

'把每個(gè)記錄打印出來,其中的字段是虛擬的,可以不用管

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

'打印兩個(gè)輸出值:

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中限制表單的多次重復(fù)提交
在Internet上我們每天都會(huì)遇到數(shù)不清的表單,也看到其中大部分并沒有限制用戶多次提交同一個(gè)表單。缺乏這種限制有時(shí)候會(huì)產(chǎn)生某些預(yù)料不到的結(jié)果,如重復(fù)訂閱郵件服務(wù)或重復(fù)投票等。 本文介紹在ASP應(yīng)用中防止用戶在當(dāng)前會(huì)話期間多次提交同一表單的一個(gè)簡(jiǎn)單方

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 汉寿县| 武宣县| 大庆市| 葵青区| 清涧县| 卢龙县| 自贡市| 济阳县| 深圳市| 玉龙| 花莲县| 民权县| 晴隆县| 个旧市| 从江县| 东莞市| 平顶山市| 湘乡市| 将乐县| 满洲里市| 哈密市| 顺昌县| 大渡口区| 建始县| 西藏| 海淀区| 怀来县| 郧西县| 宁国市| 保靖县| 铜山县| 保靖县| 邹城市| 郧西县| 大同县| 丹巴县| 麟游县| 浙江省| 甘洛县| 永善县| 吉林市|