問:
Rs.open和Rs.execute() 有什么不一樣(RS為RECORDSET 對象)?在有些頁面用set Rs=conn.execute() 不能用,有些Rs.open不能用
答:
第一個是可以有不同的打開游標
第二個只有一個向前的游標
而且你第二個寫的好象不太正確應該是conn.execute,沒有rs.execute的吧。
rexsp(真水無香 ppcode.com) :
不好意思,寫錯了,是set Rs=conn.execute() ,如果我的游標conn.cursorLocation=3,set Rs=conn.execute() 和Rs.open有什么不一樣?
conn.execute 執(zhí)行效率更高,尤其在insert into ,update等操作時!
兩種打開方式有區(qū)別,就是前面說的游標問題。
一般情況下兩種都互相換用,但有時候比如你需要取rs.recordcount的時候就只能用open來打開了。具體其他的差別我也不太清楚。我是一般用execute,在遇到問題時用open
通常 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比上一個性能要好那么一丁點
使用 CONN.execute 可以不用關閉直接執(zhí)行下一個 set rs=conn.execute(SQL)
但性能速度會大打折扣!!
大約要慢 2~5 倍!!(這是我在msSQL循環(huán)1000次親自測試過的,不信你馬上自己測試),所以執(zhí)行下一個 rs=conn.execute之前!!一定要關閉掉!是個好習慣!
使用單一對象的rs rs.open在open下一個記錄集之前,必須要求顯示關閉,否則出錯,速度在SQL,CONN,0,1的情況下可前者基本一樣
所以我喜歡使用只設置一個 CreateObject("adodb.recordset")(在不需要多個記錄集交錯操作的情況下,多個也不礙事!)
然后從頭用到尾!!!
開門關門開門關門~~~~~咵踏咵踏~~~~
最后一個 set rs=nothing 化上句號,爽!
更主要是 open提供非常靈活的操作數(shù)據(jù)庫元數(shù)據(jù)的非常多的屬性!!
打開百寶箱,金光燦燦什么都看見!
有很多情況下是非得用open來做的!
而conn.execute 像黑布下?lián)Q膠卷~~~偷偷摸摸~~非常單一!!!