標籤:des style c ext color int
幾例在ASP預存程序的使用方法
一、使用Command對象和Parameter對象傳遞參數
本講將主要使用Microsoft SQL Server7.0資料庫,先建立一個串連檔案AdoSQL7.asp備用,以後用到時不再特別說明。
<% ‘AdoSQL7.asp
Option Explicit
Response.Expires = 0
‘第一部分: 建立串連
Dim Cnn, StrCnn
Set Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provider=sqloledb; User ID=sa; Password=; Initial Catalog=pubs; Data Source=ICBCZJP"
Cnn.Open StrCnn
%>
注意:自己使用時要將Data Source設為你的資料庫伺服器所在的機器名。
另外,以前使用Access資料庫時,用Microsoft Access97可以很方便的查看欄位及資料,而使用SQL Server資料庫,尤其是並不在資料庫伺服器,而是在另一台機器上調試ASP指令碼時,要查看欄位及資料便需另外安裝工具,這裡向你提供一個工具:Msqry32.exe(Microsoft Query),這個檔案隨Office97安裝,一般位於目錄“Microsoft OfficeOffice”下。
例wuf70.asp:
<%@ LANGUAGE="VBSCRIPT" %>
<!--#include file="AdoSQL7.asp"-->
<!--#include file="adovbs.inc"-->
<% ‘ wuf70.asp
Dim cmdTest, prmTest, rsTest
‘建立 Command 對象
Set cmdTest = Server.CreateObject("ADODB.Command")
‘Recordset、Command對象都可以通過ActiveConnection屬性來串連Connection對象
cmdTest.ActiveConnection = Cnn
‘SQL命令 - 含兩個參數, 用 ? 表示
cmdTest.CommandText = "Update jobs Set job_desc = ? Where job_id = ?"
‘設命令類型為 SQL 陳述式
cmdTest.CommandType = adCmdText
‘Prepared 屬性決定是否將 SQL 命令先行編譯,將其設為True,可以加快運行
cmdTest.Prepared = True
‘建立 Parameter 對象
Set prmTest=cmdTest.CreateParameter("job_desc",adVarChar,adParamInput,50,"網路")
‘將資料追加到 Parameters 資料集合中
cmdTest.Parameters.Append prmTest
Set prmTest = cmdTest.CreateParameter("job_id",adSmallInt,adParamInput,,"12")
cmdTest.Parameters.Append prmTest
‘執行修改 ? 不需要返回結果,簡單的使用cmdTest.Execute 就可以了
cmdTest.Execute
‘重新設定參數運行 ? 便可修改另一條資料
cmdTest.Parameters("job_id") = "1"
cmdTest.Parameters("job_desc") = "測試"
cmdTest.Execute
‘重新設定參數運行
cmdTest("job_id") = "14"
cmdTest("job_desc") = "金融"
cmdTest.Execute
Set rsTest = Cnn.Execute("Select job_id,job_desc From jobs")
While Not rsTest.EOF
Response.Write rsTest(0) & rsTest(1) & "<br>"
rsTest.MoveNext
Wend
Cnn.close : Set prmTest = Nothing
Set cmdTest = Nothing: Set Cnn = Nothing
%>
分析:
1.Command對象的CreateParameter方法用來為SQL命令或預存程序建立參數對象,共有五個參數(五個參數都是可選項):
第一個參數:參數對象的名稱;
第二個參數:參數對象的資料類型,種類太多,還是參考ADO協助吧,這裡adVarChar(字串值)、adSmallInt(2 位元組帶符號整型);
第三個參數:參數類型。可以是:adParamInput(指示輸入參數)、adParamOutput( 指示為輸出參數)、adParamReturnValue(指示為返回值)、adParamUnknown(指示參數類型無法確定)、adParamInputOutput(指示為輸入/輸出參數);
第四個參數:參數的資料長度,最好指定為與資料庫中對應欄位長度相等,以免使用時出錯,尤其資料類型為VarChar時,如果是整型或日期型則不必提供該值;
第五個參數:參數的設定初值。
2.cmdTest.Parameters.Append方法增加一個Parameter對象到Parameters資料集合中,從本例中也可看到如何使用多個參數。
3.從本例可以看到,只需要重新設定輸入參數,便可執行對其他資料的修改,非常方便,這一思路在編程時也是最常用的方法之一。
4.重設參數,既可以使用cmdTest.Parameters,也可以省略為cmdTest("job_id")。