conn.execute的用法發(fā)布時間:2010-04-23 14:34文章來源:未知文章作者:黑白前線 點擊次數(shù): 114次摘要:Conn.exeCute、rs.open之間的差別Conn.exeCute、rs.open、Command.exeCutemethod用法大大不同 通常形成記錄集可以使用 Set rs=Conn.exeCute(SQL語言規(guī)則) 或直接 rs=CONN.exeCute(SQL語言規(guī)則) 和 Set rs=Server.CreateObjeCt(ADODB.ReCordset) rs.open SQL...
Conn.exeCute、rs.open之間的差別Conn.exeCute、rs.open、Command.exeCutemethod用法大大不同
通常形成記錄集可以使用
Set rs=Conn.exeCute(SQL語言規(guī)則)
或直接
rs=CONN.exeCute(SQL語言規(guī)則)
和
Set rs=Server.CreateObjeCt("ADODB.ReCordset")
rs.open SQL語言規(guī)則,CONN,0,1 或 rs.open SQL語言規(guī)則,CONN
這種情況 通常open比上一個性能要好那么一丁點
( Commandobject更靈活,運行范圍更廣)
使用 CONN.exeCute 可以不用關閉直接運行下一個 set rs=Conn.exeCute(SQL語言規(guī)則)
但性能速度會大打折扣!!
大約要慢 2~5倍!!(這是我在msSQL語言規(guī)則循環(huán)1000次親自測試過的,不信你馬上自己測試),所以運行下一個 rs=Conn.exeCute之前!!一定要關閉掉!是個好習慣!
使用單一object的rs rs.open在open下一個記錄集之前,必需要求顯示關閉,否則出錯,速度在SQL語言規(guī)則,CONN,0,1的情況下可前者基本一樣
所以我喜歡使用直設置一個 CreateObjeCt("adodb.reCordser"(在不需要多個記錄集交錯操作的情況下,多個也不礙是!)
然后從頭用到尾!!!
開門關門開門關門
最后一個 set rs=nothing 化上句號!
更主要是 open提供非常靈活的操作Datcbase元Data的非常多的屬性!!
打開百寶箱,金光燦燦什么都看見!
有很多情況下是非得用open來做的!
而Conn.exeCute 想黑布下?lián)Q膠卷~~~偷偷摸摸~~非常單一!!!
比如:
rs1.open SQL語言規(guī)則1,Conn,0,1
rs.open SQL語言規(guī)則,Conn,1,3
if rs(0)<0 then rs(0)=0
rs(1)=aaa
rs(2)=bbb
rs.update ' 更新記錄集寫到Datcbase
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 表二"
那一種method邏輯條理更好,一目了然
還有一個有趣的使用ReCordset open記錄的method!!
我想起來是有點費解
Set rs=server.CreateObjeCt("Adodb.reCordset"
Set rs=server.CreateObjeCt("Adodb.reCordset"
rs.open SQL語言規(guī)則1,CONN
rs.open SQL語言規(guī)則2,CONN
這是同時設置同名的兩個object來打開兩個記錄集,而且是可用的!
'只要取的列名合乎這兩個記錄集中元Data
'則正常操作!!
擴展開來
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 SQL語言規(guī)則1,CONN
rs.open SQL語言規(guī)則2,CONN
rs.open SQL語言規(guī)則3,CONN
rs.open SQL語言規(guī)則4,CONN
這樣大于二個同名的 rs我還沒試過!!
感覺有點相當與 SQL語言規(guī)則聯(lián)合查詢再打開記錄集~~~
以前我這樣用過!!應該不是眼花!!
===============
什么時候用什么?
那就憑個人經(jīng)驗積累的感覺了:
如果只需要一筆帶過的碰碰Datcbase,用exeCute
如果要對Datcbase作比較龐雜的操作!則最好用 rs.open