當前位置:首頁 > 建站常識 > 列表

conn.execute、rs.open之間的(de)差别

點擊:時(shí)間:2017/8/20關鍵詞:上海網頁設計 網站制作 網站建設公司
通(tōng)常形成記錄集可(kě)以使用(yòng)Set rs=conn.execute(SQL)或直接rs=CONN.execute(SQL)和(hé)Set rs=Server.CreateObject("ADODB.Recordset")rs.open SQL,CONN,0,1 或 rs.
conn.execute、rs.open之間的(de)差别

通(tōng)常形成記錄集可(kě)以使用(yòng)

Set rs=conn.execute(SQL)

或直接

rs=CONN.execute(SQL)

和(hé)

Set rs=Server.CreateObject("ADODB.Recordset")

rs.open SQL,CONN,0,1 或 rs.open SQL,CONN

這(zhè)種情況 通(tōng)常open比上一個(gè)性能要好那麽一丁點

( command對(duì)象更靈活,執行範圍更廣)

使用(yòng) CONN.execute 可(kě)以不用(yòng)關閉直接執行下(xià)一個(gè) set rs=conn.execute(SQL)

但性能速度會大(dà)打折扣!!

大(dà)約要慢(màn) 2~5倍!!(這(zhè)是我在msSQL循環1000次親自測試過的(de),不信你馬上自己測試),所以執行下(xià)一個(gè) rs=conn.execute之前!!一定要關閉掉!是

個(gè)好習(xí)慣!

使用(yòng)單一對(duì)象的(de)rs rs.open在open下(xià)一個(gè)記錄集之前,必需要求顯示關閉,否則出錯,速度在SQL,CONN,0,1的(de)情況下(xià)可(kě)前者基本一樣

所以我喜歡使用(yòng)直設置一個(gè) CreateObject("adodb.recordser"(在不需要多(duō)個(gè)記錄集交錯操作的(de)情況下(xià),多(duō)個(gè)也(yě)不礙是!)

然後從頭用(yòng)到尾!!!

開門關門開門關門

最後一個(gè) set rs=nothing 化(huà)上句号!

更主要是 open提供非常靈活的(de)操作數據庫元數據的(de)非常多(duō)的(de)屬性!!

打開百寶箱,金光(guāng)燦燦什(shén)麽都看見!

有很多(duō)情況下(xià)是非得(de)用(yòng)open來(lái)做(zuò)的(de)!

而conn.execute 想黑(hēi)布下(xià)換膠卷~~~偷偷摸摸~~非常單一!!!

比如:

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) '取的(de)字段是自動編号 立即獲得(de)新記錄的(de)自動編号id //這(zhè)是非常常用(yòng)的(de)

rs1.addnew 對(duì)rs1添加關連使用(yòng)id rs的(de)新記錄

rs1("id"=id

rs1(1)=...

..

rs1.update

rs1.close:set rs1=nothing

rs.close:set rs=nothing

上面的(de)操作如果采用(yòng)CONN.execute 則要用(yòng)到四個(gè) CONN.execute

CONN.execute("update .."

CONN.execute("insert into 表1:"

rs=CONN.execute("select 新的(de)自動 id"

CONN.execute("insert into 表二"

那一種方法邏輯條理(lǐ)更好,一目了(le)然

還(hái)有一個(gè)有趣的(de)使用(yòng)Recordset open記錄的(de)方法!!

我想起來(lái)是有點費解

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

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

rs.open SQL1,CONN

rs.open SQL2,CONN

這(zhè)是同時(shí)設置同名的(de)兩個(gè)對(duì)象來(lái)打開兩個(gè)記錄集,而且是可(kě)用(yòng)的(de)!

'隻要取的(de)列名合乎這(zhè)兩個(gè)記錄集中元數據

'則正常操作!!

擴展開來(lái)

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

這(zhè)樣大(dà)于二個(gè)同名的(de) rs我還(hái)沒試過!!

感覺有點相當與 SQL聯合查詢再打開記錄集~~~

預約建站
免費提供網站優化(huà)
領取關鍵詞