程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> conn.execute的用法

conn.execute的用法

編輯:ASP技巧

conn.execute、rs.open之間的差別conn.execute、rs.open、command.execute方法用法大大不同

通常形成記錄集可以使用

Set rs=conn.execute(SQL)

或直接
rs=CONN.execute(SQL)

Set rs=Server.CreateObject("ADODB.Recordset")
rs.open SQL,CONN,0,1 或 rs.open SQL,CONN
這種情況 通常open比上一個性能要好那麼一丁點
( command對象更靈活,執行范圍更廣)

使用 CONN.execute 可以不用關閉直接執行下一個 set rs=conn.execute(SQL)
但性能速度會大打折扣!!
大約要慢 2~5倍!!(這是我在msSQL循環1000次親自測試過的,不信你馬上自己測試),所以執行下一個 rs=conn.execute之前!!一定要關閉掉!是

個好習慣!
使用單一對象的rs rs.open在open下一個記錄集之前,必需要求顯示關閉,否則出錯,速度在SQL,CONN,0,1的情況下可前者基本一樣

所以我喜歡使用直設置一個 CreateObject("adodb.recordser"(在不需要多個記錄集交錯操作的情況下,多個也不礙是!)
然後從頭用到尾!!!
開門關門開門關門
最後一個 set rs=nothing 化上句號!

更主要是 open提供非常靈活的操作數據庫元數據的非常多的屬性!!
打開百寶箱,金光燦燦什麼都看見!
有很多情況下是非得用open來做的!
而conn.execute 想黑布下換膠卷~~~偷偷摸摸~~非常單一!!!

比如:

rs1.open SQL1,conn,0,1
rs.open SQL,conn,1,3
if rs(0)<0 then rs(0)=0
rs(1)=aaa
rs(2)=bbb
rs.update ' 更新記錄集寫到數據庫

rs.addnew '加一條新記錄
rs(0)=1
rs(1)=ddd
rs(2)=kkk
rs.update
id=rs(3) rs(s) '取的字段是自動編號 立即獲得新記錄的自動編號id //這是非常常用的

rs1.addnew 對rs1添加關連使用id rs的新記錄
rs1("id"=id
rs1(1)=...
..
rs1.update

rs1.close:set rs1=nothing
rs.close:set rs=nothing


上面的操作如果采用CONN.execute 則要用到四個 CONN.execute

CONN.execute("update .."
CONN.execute("insert into 表1:"
rs=CONN.execute("select 新的自動 id"
CONN.execute("insert into 表二"
那一種方法邏輯條理更好,一目了然


還有一個有趣的使用Recordset open記錄的方法!!
我想起來是有點費解

Set rs=server.CreateObject("Adodb.recordset"
Set rs=server.CreateObject("Adodb.recordset"

rs.open SQL1,CONN
rs.open SQL2,CONN

這是同時設置同名的兩個對象來打開兩個記錄集,而且是可用的!
'只要取的列名合乎這兩個記錄集中元數據
'則正常操作!!
擴展開來

Set rs=server.CreateObject("Adodb.recordset"
Set rs=server.CreateObject("Adodb.recordset"
Set rs=server.CreateObject("Adodb.recordset"
Set rs=server.CreateObject("Adodb.recordset"

rs.open SQL1,CONN
rs.open SQL2,CONN
rs.open SQL3,CONN
rs.open SQL4,CONN

這樣大於二個同名的 rs我還沒試過!!

感覺有點相當與 SQL聯合查詢再打開記錄集~~~
以前我這樣用過!!應該不是眼花!!
===============

什麼時候用什麼?
那就憑個人經驗積累的感覺了:
如果只需要一筆帶過的碰碰數據庫,用execute
如果要對數據庫作比較龐雜的操作!則最好用 rs.open

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved