- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > ASP >
- ASP中RecordSet Open和Connection.Execute一些區別與細節分
rs.open sql,conn:如果sql是delete,update,insert則會(huì )返回一個(gè)關(guān)閉的記錄集,在使用過(guò)程中不要來(lái)個(gè)rs.close在文件最后再寫(xiě)rs.close
中間可以來(lái)多個(gè)記錄集rs1.open sql1,conn,最后一塊關(guān)閉記錄集:rs.close rs1.close
conn.execute(sql) 如果sql是delete,update,insert則會(huì )返回一個(gè)關(guān)閉的記錄集,在使用過(guò)程中不要來(lái)個(gè)rs.close在文件最后再寫(xiě)rs.close
中間可以來(lái)多個(gè)記錄集rs1.open sql1,conn,最后一塊關(guān)閉記錄集:rs.close rs1.close.
如果sql是update,insert,delete則應該使用conn.execute(sql)也可以不要括號conn.execute sql
如果sql是select語(yǔ)句則應該使用set rs=conn.execute(sql)括號一定要,不能省略:這是因為vbscript的特性,帶返回值
的調用必須加括號,不帶返回值的調用可以不要括號。
注意:不管是rs.open sql,conn還是conn.execute(sql) [這里的SQL是delete,update,insert]執行以后都會(huì )返回一個(gè)關(guān)閉的記錄集
也就是說(shuō)如果sql是插入,更新,刪除語(yǔ)句,那么set rs=conn.execute(sql)中的RS就沒(méi)什么意義。
1.conn.execute
sql="select * from admin where username='xiaozhu'" set rs=conn.execute(sql) 執行完以后自動(dòng)關(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 可以自己設定一些參數,即鎖定和游標的移動(dòng)方式 最后要關(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語(yǔ)句") 得到的rs.recordcount=-1
rs.open sql,conn("sql為select語(yǔ)句") 得到的rs.recordcount為正常的記錄數
2.
rs.open是打開(kāi)數據庫 conn.execute 是執行SQL指令
set rs=conn.execute(insert,update,delete)返回一個(gè)關(guān)閉了的記錄集
set rs=conn.execute(select)返回一個(gè)沒(méi)有關(guān)閉的記錄集
3.
CONN.EXECUTE(SQL,RowsAffected,C)
參數含義:
SQL的值可以是SQL語(yǔ)句、表名、存儲過(guò)程名,也可以是數據提供者所能接受的任意字符串。為了提高性能,最好為C參數指定合適的值
可選參數RowsAffected將返回INSERT、UPDATE或DELETE查詢(xún)執行以后所影響的數目。這些查詢(xún)會(huì )返回一個(gè)關(guān)閉的Recordset對象。
一個(gè)SELECT查詢(xún)將返回RowsAffected值為-1并且返回帶有一行或多行內容的打開(kāi)的Recordset。
4.
conn.execute sql適合于不需返回recordset對象時(shí)使用,比如下面的代碼:
sql="delete from enews where id="&cstr(id)
conn.execute sql
如果需要返回recordset對象,則使用如下代碼:
sql="select from enews where id="&cstr(id)
set rs = conn.execute(sql)
如果去掉execute(sql)這兒的括號(即為set rs = conn.execute sql),就會(huì )提示“語(yǔ)句未結束”這樣的錯誤提示,我翻看了一下語(yǔ)法格式,發(fā)現有二種格式,詳解如下:
格式一:Connection對象名.Execute(SQL指令).
格式二:Connection對象名.Execute(數據表名)。
rs.open sql,conn
rs.open sql,conn,1,1
rs.open sql,conn,3,2
rs.open sql,conn,3,3
關(guān)于上面語(yǔ)句中后面的數字都代表什么意思?還有省略數字(rs.open sql,conn)時(shí)默認的是哪一個(gè)?
最佳答案
RS.OPEN SQL,CONN,A,B
A: ADOPENFORWARDONLY(=0) 只讀,且當前數據記錄只能向下移動(dòng)
ADOPENKEYSET(=1) 可讀寫(xiě),當前數據記錄可自由移動(dòng)
ADOPENDYNAMIC(=2) 可讀寫(xiě),當前數據記錄可自由移動(dòng),可看到新增記錄
ADOPENSTATIC(=3) 只讀,當前數據記錄可自由移動(dòng)
B: ADLOCKREADONLY(=1) 缺省鎖定類(lèi)型,記錄集是只讀的,不能修改記錄
ADLOCKPESSIMISTIC(=2) 悲觀(guān)鎖定,當修改記錄時(shí),數據提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開(kāi)始,則立即鎖住記錄。
ADLOCKOPTIMISTIC(=3) 樂(lè )觀(guān)鎖定 ,直到用Update方法提交更新記錄時(shí)才鎖定記錄。
ADLOCKBATCHOPTIMISTIC(=4) 批量樂(lè )觀(guān)鎖定,允許修改多個(gè)記錄,只有調用UpdateBatch方法后才鎖定記錄。
當不需要改動(dòng)任何記錄時(shí),應該使用只讀的記錄集,這樣提供者不用做任何檢測。對于一般的使用,樂(lè )觀(guān)的鎖定可能是最好的選擇,因為記錄只被鎖定一小段時(shí)間, 數據在這段時(shí)間被更新。這減少了資源的使用。
到此這篇關(guān)于A(yíng)SP中RecordSet Open和Connection.Execute一些區別與細節分享的文章就介紹到這了,更多相關(guān)RecordSet Open和Connection.Execute內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站