以后地位:首页 > 建站常识 > 列表

conn.execute、rs.open之间的不同

点击: 次时候:2017/8/20关头词:上海网页设想 网站建造 网站扶植公司
凡是构成记实集能够利用Set rs=conn.execute(SQL)或间接rs=CONN.execute(SQL)和Set rs=Server.CreateObject("ADODB.Recordset")rs.open SQL,CONN,0,1 或 rs.
conn.execute、rs.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比上一特机能要好那末一丁点

( 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结合查问再翻开记实集~~~

预定建站
收费供给网站优化
支付关头词