久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ASP+存儲(chǔ)過(guò)程(轉(zhuǎn)載)

 fan_tao 2009-09-09
ASP+存儲(chǔ)過(guò)程(轉(zhuǎn)載)
2007-06-15 16:13
1. 這也是最簡(jiǎn)單的方法,兩個(gè)輸入?yún)?shù),,無(wú)返回值:
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的方法。
首先說(shuō)明,,返回值有兩種,。一種是在存儲(chǔ)過(guò)程中直接return一個(gè)值,就象C和VB的函數(shù)返回值那樣,;另一種是可以返回多個(gè)值,,存
儲(chǔ)這些值的變量名稱需要在調(diào)用參數(shù)中先行指定。
這個(gè)例子要處理多種參數(shù),,輸入?yún)?shù),,輸出參數(shù),返回記錄集以及一個(gè)直接返回值(夠全了吧,?)
存儲(chǔ)過(guò)程如下:

use pubs
GO

-- 建立存儲(chǔ)過(guò)程
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ǔ)過(guò)程的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 中沒(méi)有預(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ǔ)過(guò)程 (adCmdSPStoredProc = 4)
CmdSP.CommandType = adCmdSPStoredProc

''往command 對(duì)象中加參數(shù)
''定義存儲(chǔ)過(guò)程有直接返回值,并且是個(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ǔ)過(guò)程,,并得到返回記錄集
Set adoRS = CmdSP.Execute


''把每個(gè)記錄打印出來(lái),其中的字段是虛擬的,,可以不用管
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中調(diào)用sql server的存儲(chǔ)過(guò)程可以加快程序運(yùn)行速度

1.調(diào)用存儲(chǔ)過(guò)程的一般方法
先假設(shè)在sql server中有一存儲(chǔ)過(guò)程dt_users:
CREATE PROCEDURE [dbo].[dt_users]
AS
select * from users
return
GO
第一種方法是不利用command對(duì)象,,直接用recordset對(duì)象
set rs=server.createobject("adodb.recordset")
sql="exec dt_users"
rs.open sql,conn,1,1 這樣就可
第二種方法是利用command對(duì)象
set comm=server.createobject("adodb.command")
comm.commantype=4
set comm.activeconnection=conn
comm.commandtext="dbo.dt_users"
set rs=server.createobject("adodb.recordset")
rs.open comm,,1,1

2.給存儲(chǔ)過(guò)程傳遞參數(shù)
如果存儲(chǔ)過(guò)程中不用參數(shù),而是單一的sql語(yǔ)句,,還顯示不出調(diào)用存儲(chǔ)過(guò)程的優(yōu)勢(shì),!
比如說(shuō)一bbs的查詢,可以按作者和主題查詢,!則可以建立存儲(chǔ)過(guò)程如下:
參數(shù)keyword為關(guān)鍵字,,choose是選擇查詢的方法。
CREATE PROCEDURE [dbo].[dt_bbs]
@keyword varchar(20)=null,
@choose int=null
as
if @choose=1
select * from bbs where name like @keyword
else
select * from bbs where subject like @keyword
return
go
這樣我們調(diào)用存儲(chǔ)過(guò)程時(shí)只需將參數(shù)傳遞過(guò)去就行了,,而省去在asp中來(lái)寫(xiě)一段程序
用第一種方法:
set rs=server.createobject("adodb.recordset")
sql="exec dt_bbs ''"&keyword&"'',"&choose&""
rs.open sql,conn,1,1
用第二種方法:
set comm=server.createobject("adodb.command")
comm.commantype=4
comm.Parameters.append comm.CreateParameter("@keyword",adChar,adParamInput,50,keyword)
comm.Parameters.append comm.CreateParameter("@keyword",adInteger,adParamInput,,choose)
set comm.activeconnection=conn
comm.commandtext="dbo.dt_bbs"
set rs=server.createobject("adodb.recordset")
rs.CursorType=3
rs.open comm,,1,1

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多