當前位置:編程學習大全網 - 遊戲軟體 - ASP中的COMMAND對象的問題

ASP中的COMMAND對象的問題

視頻學習不如耐心看文檔資料:

recordset對象相當簡單,熟悉Asp的都能上手操作,這裏簡單做個實例:

Mssql 中建立存儲過程SP_UserList :

CREATE PROCEDURE SP_UserList

@Uid int

AS

select * from Users where Uid = @Uid

return

GO

在SQL Server中執行存儲過程:

declare @Uid int

execute SP_UserList 1

使用recordset對象調用:

Uid = 1

set rs=server.createobject("adodb.recordset")

sql = "exec SP_UserList "&Uid&""

rs.open sql,conn,1,1

或者:

Uid = 1 '存儲過程的輸入參數,為簡化程序, 直接設置該值

sql = "SP_UserList "&Uid&""

Set rs = Conn.Execute(sql) '或者Set rs = Conn.Execute("exec SP_UserList "&Uid&"")

如果改用command對象來調用存儲過程,則必須先加載adovbs.inc文件(文件adovbs.inc可在C:\Program Files\Common Files\System\ADO下找到):

<!--必須加載adovbs.inc文件,否則將出錯-->

<!--#include file="adovbs.inc"-->

'-----建立Connection對象----------

set Conn = Server.CreateObject("Adodb.connection")

Conn.Open "driver={sql server};server=localhost;uid=sa;pwd=;database=Mydbase;"

Uid = 1

'-----建立Command對象-----------

set Comm = server.createobject("adodb.command")

Comm.ActiveConnection = Conn

Comm.CommandText = "SP_UserList" '存儲過程名稱,指定要執行的是壹個存儲過程

Comm.CommandType = 4 'adCmdStoredProc = 4 ,其為Stored Procedure

'-----準備 Stored Procedure 的參數-------

Comm.Parameters.Append Comm.CreateParameter("@Uid",adInteger,adParamInput,4,Uid) '命令格式Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)

'-----或者使用下列的方法定義 Stored Procedure 的參數:先創建輸入參數對象,然後把參數加到參數集合-------

'Set CommFirstParam = Comm.CreateParameter("@Uid",adInteger,adParamInput,4,Uid) '創建輸入參數對象

'Comm.Parameters.Append CommFirstParam '把參數加到參數集合

'-----執行存儲過程----------------------

Comm.Execute

'-----下面輸出參數結果----------------------

response.write Comm.Parameters("@Uid")

最後關閉command對象:Set Comm = Nothing。如果準備 Stored Procedure 的參數中采用的是創建輸入參數對象的方法,則在最後還必須關閉對象:Set CommFirstParam = Nothing

再次提示壹下,在使用command調對存儲過程時,必須預先使用include加載adovbs.inc文件,否則肯定出錯!!

下列是對Command對象中使用的各屬性的描述。

1、ActiveConnection 屬性:指示指定的 Command 或 Recordset 對象當前所屬的 Connection 對象。

2、CommandText 屬性:包含要根據提供者發送的命令的文本。設置或返回包含提供者命令(如 SOL 語句、表格名稱或存儲的過程調用)的字符串值。默認值為 ""(零長度字符串)。

3、CommandType 屬性:指示 Command 對象的類型。

設置和返回值:

AdCmdText:將 CommandText 作為命令或存儲過程調用的文本化定義進行計算。

AdCmdTable:將 CommandText 作為其列全部由內部生成的 SQL 查詢返回的表格的名稱進行計算。

AdCmdTableDirect:將 CommandText 作為其列全部返回的表格的名稱進行計算。

AdCmdStoredProc:將 CommandText 作為存儲過程名進行計算。

AdCmdUnknown:默認值。CommandText 屬性中的命令類型未知。

adCmdFile:將 CommandText 作為持久 Recordset 文件名進行計算。

AdExecuteNoRecords:指示 CommandText 為不返回行的命令或存儲過程(例如,插入數據的命令)。如果檢索任意行,則將丟棄這些行且並不返回。它總是與 adCmdText 或 adCmdStoredProc 進行組合。

4、CreateParameter 屬性:使用指定屬性創建新的 Parameter 對象。返回 Parameter 對象。

語法:Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)

參數描述:

Name:可選,字符串,代表 Parameter 對象名稱。

Type: 可選,長整型值,指定 Parameter 對象數據類型。關於有效設置請參見 Type 屬性。

Direction:可選,長整型值,指定 Parameter 對象類型。關於有效設置請參見 Direction 屬性。

Size:可選,長整型值,指定參數值最大長度(以字符或字節數為單位)。

Value: 可選,變體型,指定 Parameter 對象的值。

在上例使用Command對象時,在“準備 Stored Procedure 的參數”中,我們還可以這樣實現:

Comm.Parameters.Append Comm.CreateParameter("Uid",adInteger,adParamInput,4)

Comm("Uid")=1

這樣我們在使用存儲過程(Stored Procedure) 參數的時候,就可以使用三種方法來實現了。

在ASP中使用存儲過程使用到的各個屬性我們就簡單介紹到這裏。在存儲過程使用過程中,除了可傳遞輸入參數外,還可以使用返回碼和輸出參數返回值,由於篇幅關系,筆者不再舉例,有興趣可去參考VB6.0的MSDN文檔中有關ADO的部分和SQL Server 2000的幫助文檔。

附:存儲過程的書寫格式

[Copy to clipboard] [ - ]CODE:

CREATE PROCEDURE [擁有者.]存儲過程名[;程序編號]

[(參數#1,…參數#1024)]

[WITH

{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}

]

[FOR REPLICATION]

AS

程序行

  • 上一篇:人工降雨的炮彈能飛多高?
  • 下一篇:昂達平板電腦如何ROOT
  • copyright 2024編程學習大全網