欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

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

use pubs
GO

-- 建立存儲過(guò)程
create procedure sp_PubsTest

-- 定義三個(gè)參數變量,注意第三個(gè),特別標記是用于輸出
@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


調用該存儲過(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 中是預定義常量,可以直接調用,但在 VBScript 中沒(méi)有預定義
adCmdSPStoredProc = 4
adParamReturnValue = 4
adParaminput = 1
adParamOutput = 2
adInteger = 3
adVarChar = 200

iVal = 5
oVal = 3

''建一個(gè)command對象
set CmdSP = Server.CreateObject("ADODB.Command")

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

''定義command 對象調用名稱(chēng)
CmdSP.CommandText = "sp_PubsTest"

''設置command調用類(lèi)型是存儲過(guò)程 (adCmdSPStoredProc = 4)
CmdSP.CommandType = adCmdSPStoredProc

''往command 對象中加參數
''定義存儲過(guò)程有直接返回值,并且是個(gè)整數,省缺值是4
CmdSP.Parameters.Append CmdSP.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 4)
''定義一個(gè)字符型輸入參數
CmdSP.Parameters.Append CmdSP.CreateParameter("@au_lname", adVarChar, adParaminput, 20, "M")
''定義一個(gè)整型輸入參數
CmdSP.Parameters.Append CmdSP.CreateParameter("@intID", adInteger, adParamInput, , iVal)
''定義一個(gè)整型輸出參數
CmdSP.Parameters.Append CmdSP.CreateParameter("@intIDOut", adInteger, adParamOutput, oVal)

''運行存儲過(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中調用sql server的存儲過(guò)程可以加快程序運行速度

1.調用存儲過(guò)程的一般方法
先假設在sql server中有一存儲過(guò)程dt_users:
CREATE PROCEDURE [dbo].[dt_users]
AS
select * from users
return
GO
第一種方法是不利用command對象,直接用recordset對象
set rs=server.createobject("adodb.recordset")
sql="exec dt_users"
rs.open sql,conn,1,1 這樣就可
第二種方法是利用command對象
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.給存儲過(guò)程傳遞參數
如果存儲過(guò)程中不用參數,而是單一的sql語(yǔ)句,還顯示不出調用存儲過(guò)程的優(yōu)勢!
比如說(shuō)一bbs的查詢(xún),可以按作者和主題查詢(xún)!則可以建立存儲過(guò)程如下:
參數keyword為關(guān)鍵字,choose是選擇查詢(xún)的方法。
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
這樣我們調用存儲過(guò)程時(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
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
關(guān)于recordcount等-1的問(wèn)題
ASP中Connection對像封裝dll解決方案
VBA 使用ADO組件的兩種方式
VB-ADO:連接與操作數據庫的簡(jiǎn)單范例
asp常用代碼大全
用ASP上傳Excel 表格并導入到數據庫
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久