1. 程式人生 > >asp執行sql語句、儲存過程的幾種方法

asp執行sql語句、儲存過程的幾種方法

使用connection物件

會返回一個關閉的recordset記錄集,此記錄集不要再次宣告關閉
建議在update、insert、delete時使用

strCon="provider=sqloledb;data source=servername;initial catalog=databasename;uid=username;pwd=password"
set conn=server.CreateObject("adodb.connection")
conn.open strCon
conn.begintrans '事務開始
conn.execute(sql),num 'num表示update、insert、delete影響的行數
conn.committrans '事務提交 conn.rollbacktrans '事務回滾 set rs=conn.execute("sp_XXXX",引數1,引數2) '執行儲存過程sp_XXXX,是否返回記錄集可選 conn.close set conn=nothing

使用recordset物件

返回一個recordset記錄集,建議查詢時使用

set rs=server.CreateObject("adodb.recordset")
rs.open sql,strCon,1,1
do while not rs.eof '迴圈讀取記錄集
	xx=rs("filename"
) '讀取記錄集中filename欄位 rs.movenext loop rs.close set rs=nothing

使用command物件

建議儲存過程使用
建立儲存過程的引數物件命令,引數數量根據不同型別而有所變化:
Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)
Name-引數名,Type-引數資料型別,Direction-引數型別,Size-長度(可選),Value-引數值(可選)

set conn=server.CreateObject("adodb.connection"
) set cmd=server.CreateObject("adodb.command") conn.open strCon set cmd.ActiveConnection=conn cmd.CommandText="sp_XXXX" '儲存過程名 cmd.CommandType=4 '命令型別:1-普通命令,2-表名,4-儲存過程 '輸入引數:引數名、引數資料型別、引數型別(輸入引數) cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger,adParamInput) cmd(“@aaa”)=100 '給輸入引數賦值 '輸出引數:引數名、引數資料型別、引數型別(輸出引數) cmd.Parameters.Append cmd.CreateParameter("@bbb",adInteger,adParamOutput) '返回值:只能整數 cmd.Parameters.Append cmd.CreateParameter("@return_value",adInteger,adParamReturnValue ) cmd.Execute() '執行儲存過程 bbb=cmd(“@bbb”) '獲取輸出值 rrr=cmd(“@return_value”) '獲取返回值

指明引數型別時可使用型別名或者序號

Type-引數資料型別

型別 序號 說明
adDBTimeStamp 135 日期時間資料型別
adDecimal 14 十進位制整數值
adDouble 5 雙精度小數值
adError 10 系統錯誤資訊
AdGUID 72 全域性唯一識別字(Globally unique identifier)
adDispath 9 COM/OLE自動物件(Automation Object)
adInteger 3 4位元組有符號整數
adIUnknown 13 COM/OLE物件
adLongVarBinary 205 大型2位元組值
adLongVarChar 201 大型字串值
adLongVarWChar 203 大型未編碼字串
adNumeric 131 十進位制整數值
adSingle 4 單精度浮點小數
adSmallInt 2 2位元組有符號整數
adTinyInt 16 1位元組有符號整數
adUnsignedBigInt 21 8位元組無符號整數
adUnsignedInt 19 4位元組無符號整數
adUnsignedSmallInt 18 2位元組無符號整數
adUnsignedTinyInt 17 1位元組無符號整數
adUserDefined 132 使用者自定義資料型別
adVariant 12 OLE物件
adVarBinary 204 雙位元組字元變數值
adVarChar 200 字元變數值
advarchar 202 未編碼字串變數值
adWchar 130 未編碼字串

Direction-引數型別

型別 序號 說明
adParamInput 1 允許資料輸入至該引數當中
adParamOutput 2 允許資料輸出至該引數當中
adParamInputOutput 3 允許資料輸入、輸出至該引數當中
adparamReturnValue 4 允許從一子程式中返回資料至該引數當中

儲存過程部分參考:
ASP呼叫儲存過程訪問SQL Server
Asp呼叫儲存過程,command.CreateParameter 引數值的型別說明