帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
Connection对象
作者:佚名 发布时间:2005-04-02 来源:不详
  上一章讨论了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将会创建一个空的记录集,很明显这浪费了时间,因此加上这个选项会加快语句的执行。
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·认识和优化connection对象  (2005-04-02)
 ·rs.open sql,conn,1,1是仅向前的  (2005-04-02)
 ·和数据源联机--Connection 物件简  (2005-04-02)
 ·不用数据源打开数据库(DSNless   (2005-03-12)
 ·rs.open sql,conn,1,1 的后两个   (2005-03-12)
 ·rs.open sql,conn,1,1是仅向前的  (2005-03-12)
 ·使用NextRecordset通过一个Conne  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统