• conn.execute的用法


    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

    如何判断conn.Execute成功 或失败?

    <%
    dim sql
    sql="select * from table"
    on error resume next
    conn.execute(sql)
    if err.number=0 then
    Response.Write "成功!"
    else
    Response.Write "失败"
    end if
    %>

  • 相关阅读:
    Jenkins+Tomcat+svn+maven自动化构建简单过程
    Eclipse常用的6个Debug技巧
    在linux服务器上发布web应用的完整过程
    【转】解决response.AddHeader("Content-Disposition", "attachment; fileName=" + fileName) 中文显示乱码
    springmvc缓存和mybatis缓存
    springmvc文件上传和下载
    博客园API
    整理一下CoreGraphic和Quartz2D的知识(二)
    整理一下CoreGraphic和Quartz2D的知识(一)
    CGPoint和CGSize以及CGRect的一些方法~
  • 原文地址:https://www.cnblogs.com/ly312/p/1740048.html
Copyright © 2020-2023  润新知