动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   Asp → 阅读文章
  

 Connection对象

作者来源: 
阅读 数 581 人次 , 2006-4-3 0:46:00 


上一章讨论了ado的基础知识,内容主要涉及recordset对象以及对数据的处理。在大多数例子中,只是通过指定数据库的表名来获取数据,但正如从对象模型中看到的,ado还有其他允许访问数据的对象。
    本章将要更详细地介绍这些对象,特别将研究以下内容:
    · connection对象,以及如何用它来获取数据和运行命令。
    · command对象,为什么需要该对象及其所具有的功能。
    · 如何运行存储过程,特别是那些需要参数的存储过程。
    · 一些简单的改善ado性能的优化技巧。
    · 数据整形的概念及如何使用。
    如同介绍recordset对象那样,我们不打算覆盖所涉及对象的全部方法和属性。在这里只探讨其中最重要的主题,以及那些适用于asp开发人员的方法与属性。

9.1 connection对象
    前一章中已经提及,connection对象是为我们与数据存储提供连接的对象,但这并非connection对象的全部功能。除了存储连接的细节外(比如数据存储的类型,以及其支持的特性),也可以利用connection对象运行命令。
    这些命令可能是查询动作,比如更新、插入或删除操作,也可以是返回一个记录集的命令。读者可能会觉得奇怪:既然有了recordset对象,这又有什么用?这正是ado的灵活性所在,可以根据当前的情况,以及对当前任务的适用性选择使用任一种对象。
    从connection对象运行的命令一般是查询动作,但了解能够得到返回的记录集也是非常有用的。

9.1.1 返回一个记录集
    为了从connection对象返回一个记录集,要使用execute方法。语法是:
    connection.execute commandtext, [recordsaffected], [options]
    参数及说明如表9-1所示:
表9-1 connection对象的execute方法的参数及说明

    execute方法可选择地返回一个记录集,在这种情况下只要将返回值赋给记录集变量。例如:
    set conpubs = server.createobject("adodb.connection")
   
    conpubs.open strconn

    set rsauthors = conpubs.execute("authors")
    读者可能会奇怪使用connection对象的execute方法与使用recordset对象的open方法之间到底有什么区别?看上去区别不是很大,使用recordset对象的open方法可以改变光标类型和锁定类型。这些选项对于connection对象的execute方法是不可用的,因此永远只能得到一个只能前移的、只读的记录集。

9.1.2 操作命令
    如果正在运行操作命令,比如一个sql update语句,那么可以使用recordaffected参数找出有多少条记录受到该命令的影响。例如:
    dim strsql as string
    dim lngrecs as long

    strsql = "update titles set price = price * 1.10" & "where type='business'"

    conpubs.execute strsql, lngrecs, adcmdtext

    response.write lngrecs & " records were updated."
    上述代码将所有类型为business的书的单价增加了10%。一旦execute命令执行完毕,受update命令影响的记录数就返回到变量lngrecs中,这就是recordsaffected参数。
    注意,已经为命令指定了adcmdtext选项,告诉ado commandtext参数是一个文本命令。一般这不是严格必须的,其目的只是让ado预先知道执行的命令属于何种类型,这样能够提高性能。记住,这个值可以是一个或多个commandtypeenum值。
    无记录集返回
    如果上面的例子不返回记录集,那么在execute语句中加入另一个选项也是较好的方法:
    conpubs.execute strsql, lngrecs, adcmdtext + adexecutenorecords
    使用adexecutenorecords告诉ado执行的命令不返回任何记录。所以,ado不必费心去创建一个记录集。如果省略了该选项,那么ado将会创建一个空的记录集,很明显这浪费了时间,因此加上这个选项会加快语句的执行。

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:Command对象
· 下一篇:管理错误
· 几个ASP好用的自定义函数
· 游标操作时进行Update应注意的一个问题
· VBScript Function 语句
· ASP+中执行简单的Select查询,并返回数据表到DataGrid源程序
· 函数小数转分数,限于整除分数


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077