佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明

asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明

熱門標(biāo)簽:團購網(wǎng)站 銀行業(yè)務(wù) 阿里云 Mysql連接數(shù)設(shè)置 科大訊飛語音識別系統(tǒng) Linux服務(wù)器 電子圍欄 服務(wù)器配置

1. Rs.Open SQL,Conn,A,B,C
2. Conn.Execute(SQL,RowsAffected,C)

一、Conn.Execute(SQL,RowsAffected,C)

參數(shù)含義:

SQL的值可以是SQL語句、表名、存儲過程名,也可以是數(shù)據(jù)提供者所能接受的任意字符串。為了提高性能,最好為C參數(shù)指定合適的值
可選參數(shù)RowsAffected
1、一個Insert、Update或Delete查詢執(zhí)行以后,RowsAffected返回所影響的數(shù)目,這些查詢會返回一個關(guān)閉的Recordset對象。
2、一個SELECT查詢將返回RowsAffected值為-1并且返回帶有一行或多行內(nèi)容的打開的Recordset。

%
Set Conn=OpenDatabase'(OpenDatabase函數(shù)詳見:ASP中與ACCESS和MSSQL數(shù)據(jù)庫建立連接方法)
Conn.Execute "update Table1 set Col1='123'",RowsAffected,H0001
Response.Write RowsAffected" 行受到影響"
Conn.close
Set Conn=Nothing
%>

二、Rs.Open SQL,Conn,A,B,C

Set Rs=Server.CreateObject ("adodb.RecordSet")
sql="xxxx"
Rs.Open Sql,Conn,1,1,H0001
irs=rs.getrows(10)

H0001是什么意思?以前第一次見到這個時,著實迷惑了一陣?,F(xiàn)在網(wǎng)站關(guān)于這個的資料滿天飛了。在此提一下,下面參數(shù)說明中有具體說明。

A參數(shù):游標(biāo)類型

Const adOpenForwardOnly=0 只讀,缺省。在記錄集內(nèi)的記錄間游標(biāo)只允許往前移動。不支持分頁、Recordset、BookMark
Const adOpenKeyset=1 只讀,鍵集游標(biāo),當(dāng)前數(shù)據(jù)記錄可自由移動,其他用戶對記錄說做的修改將反映到記錄集中,但其他用戶增加或刪除記錄不會反映到記錄集中。支持分頁、Recordset、BookMark
Const adOpenDynamic=2 可讀寫,當(dāng)前數(shù)據(jù)記錄可自由移動,動態(tài)游標(biāo)功能最強,但耗資源也最多。用戶對記錄說做的修改,增加或刪除記錄都將反映到記錄集中。支持全功能瀏覽(ACCESS不支持)。
Const adOpenStatic=3 靜態(tài)游標(biāo),只是數(shù)據(jù)的一個快照,用戶對記錄說做的修改,增加或刪除記錄都不會反映到記錄集中。支持向前或向后移動

B參數(shù):鎖定類型

Const adLockReadOnly=1 缺省值,記錄集是只讀的,不能修改記錄
Const adLockPessimistic=2 '悲觀鎖定,當(dāng)編輯時立即鎖定記錄,以確保成功地編輯記錄。最安全的方式
Const dLockOptimistic=3 '樂觀鎖定,直到用Update方法提交更新記錄時才鎖定記錄,而在此前的其他操作仍可對當(dāng)前記錄進行更改、插入和刪除等
Const dLockBatchOptimistic=4 '批量樂觀鎖定,允許修改多個記錄,只有調(diào)用UpdateBatch方法后才鎖定記錄。
當(dāng)不需要改動任何記錄時,應(yīng)該使用只讀的記錄集,這樣提供者不用做任何檢測。對于一般的使用,樂觀的鎖定可能是最好的選擇,因為記錄只被鎖定一小段時間,數(shù)據(jù)在這段時間被更新。這減少了資源的使用。

C參數(shù):(指定SQL語句類型)

Const ADCmdUnknown=H0008 '未知,需要系統(tǒng)來判斷,速度慢,為缺省值
Const ADCmdText=H0001 '將執(zhí)行一段sql
Const ADCmdTable=H0002 '將操作一個表
Const ADCmdStoredProc=H0004 '將操作存儲過程名稱
Const ADCmdFile= H0100 '對象類型相應(yīng)的文件名稱
Const ADCmdTableDirect=H0200 '是能直接從表中獲取行內(nèi)容的表名稱

三、Rs.Open和Conn.Execute的區(qū)別

Rs.Open SQL,Conn
如果sql是delete,update,insert則會返回一個關(guān)閉的記錄集,在使用過程中不要來個rs.close在文件最后再寫rs.close中間可以來多個記錄集rs1.open sql1,conn,最后一塊關(guān)閉記錄集:rs.close rs1.close
Conn.Execute(SQL)
如果sql是delete,update,insert則會返回一個關(guān)閉的記錄集,在使用過程中不要來個rs.close在文件最后再寫rs.close中間可以來多個記錄集rs1.open sql1,conn,最后一塊關(guān)閉記錄集:rs.close rs1.close.
如果sql是update,insert,delete則應(yīng)該使用Conn.Execute(sql)也可以不要括號Conn.Execute sql
如果sql是select語句則應(yīng)該使用Set Rs=Conn.Execute(sql)括號一定要,不能省略
這是因為vb的特性,帶返回值的調(diào)用必須加括號,不帶返回值的調(diào)用可以不要括號。

1、Conn.Execute

sql="select * from admin where username='xiaozhu'"
Set Rs=Conn.Execute(sql)
'執(zhí)行完以后自動關(guān)閉記錄集
'最后只需要關(guān)閉連接就可以了
conn.close
Set conn=nothing

2、Rs.Open

Set Rs=Server.CreateObject("Adodb.Recordset")
sql="select * from admin where username='xiaozhu'"
Rs.Open sql,Conn,1,1
'可以自己設(shè)定一些參數(shù),即鎖定和游標(biāo)的移動方式
'最后要關(guān)閉記錄集和連接
Rs.Close
Set Rs=nothing
Conn.Close
Set Conn=Nothing

3、command.execute

sql="select * from admin where username='xiaozhu'"
Set Rs=Command.Execute(sql)
1.
Set Rs=Conn.Execute("如果是select語句") 得到的rs.recordcount=-1
Rs.Open sql,conn("sql為select語句") 得到的rs.recordcount為正常的記錄數(shù)
2.
Rs.Open是打開數(shù)據(jù)庫 Conn.Execute 是執(zhí)行SQL指令
Set Rs=Conn.Execute(insert,update,delete)返回一個關(guān)閉了的記錄集
Set Rs=Conn.Execute(select)返回一個沒有關(guān)閉的記錄集
3.
Conn.Execute(SQL,RowsAffected,C)
參數(shù)含義:
SQL的值可以是SQL語句、表名、存儲過程名,也可以是數(shù)據(jù)提供者所能接受的任意字符串。為了提高性能,最好為C參數(shù)指定合適的值。
可選參數(shù)RowsAffected將返回INSERT、UPDATE或DELETE查詢執(zhí)行以后所影響的數(shù)目。這些查詢會返回一個關(guān)閉的Recordset對象。
一個SELECT查詢將返回RowsAffected值為-1并且返回帶有一行或多行內(nèi)容的打開的Recordset。
4.
Conn.Execute sql適合于不需返回recordset對象時使用,比如下面的代碼:
sql="delete from news where id="cstr(id)
Conn.Execute sql
如果需要返回recordset對象,則使用如下代碼:
sql="select from news where id="cstr(id)
Set Rs=Conn.Execute(sql)
如果去掉execute(sql)這兒的括號(即為set rs = Conn.Execute sql),就會提示“語句未結(jié)束”這樣的錯誤提示,我翻看了一下語法格式,發(fā)現(xiàn)有二種格式,詳解如下:

格式一:Connection對象名.Execute(SQL指令)
格式二:Connection對象名.Execute(數(shù)據(jù)表名)
Conn.Execute(sql)(0)為數(shù)據(jù)集的第一個字段的值
Conn.Execute(sql) 返回記錄集。
Conn.Execute sql 不返回記錄集。一般用于插入、更新,刪除等不帶返回值的操作

標(biāo)簽:衢州 廣元 蚌埠 棗莊 大理 江蘇 衡水 萍鄉(xiāng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    同江市| 晋州市| 灵寿县| 陆丰市| 镶黄旗| 饶河县| 漯河市| 辉南县| 外汇| 页游| 青神县| 福海县| 新沂市| 隆安县| 文化| 乌兰察布市| 城固县| 永州市| 墨玉县| 长丰县| 井冈山市| 阜康市| 阳曲县| 马鞍山市| 郎溪县| 闽侯县| 安新县| 西乌珠穆沁旗| 思茅市| 墨玉县| 柳州市| 汉源县| 茂名市| 竹山县| 肇庆市| 明光市| 盐边县| 化隆| 蒲城县| 海丰县| 从江县|