




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章利用ADO实现数据库的存取,本章要点,Connection对象Recordset对象Command对象Field对象Error对象,ASP作为动态Web应用程序,其开发Web数据库是其最重要的环节。ADO(ActiveXDataObjectsActiveX数据对象)是微软提供的新一代数据库存取访问技术,ASP内置的ADO组件是数据库开发的重要工具。应用ADO组件,通过ODBC驱动程序或OLEDB链接字符串可实现ASP与数据库之间的连接,通过ADO组件提供的各种方法实现数据检索和数据编辑等操作。本章将重点介绍ADO对象的结构和配置,以及各种数据访问对象。本章将详细介绍ActiveX数据对象及其在ASP编程中的应用。,8.1ADO简介,ADO对象的主要优点是高速、容易使用、占用内存和磁盘空间少,所以非常适合于作为服务器端的数据库访问技术。ADO对象是多线程的,在出现大量并发请求时,也同样可以保持服务器的运行效率,并且通过连接池技术以及对数据库连接资源的完全控制,提供与远程数据库的高效连接与访问,同时它还支持事务处理,以开发高效率、高可靠性的数据库应用程序。,ADO结合了OLEDB易于使用的特性以及RDO(RemoteDataObjects远程数据对象)和DAO(DataAccessOjects数据访问对象)模型中的最好特性,并将它们重新组织在一个对象模型中。ADO包含所有可以被OLEDB标准对象描述的数据类型,即ADO对象模型具有扩展性,即使对于那些从来没有见到过的记录集的信息格式,只要使用正常的ADO编程对象,就能够可视化地处理所有的工作,ADO对象模型给开发人员提供了一种快捷、简单、高效的数据库访问方法,可以在脚本中使用ADO对象建立对数据库的连接,并从数据库中读取记录,形成需要的对象集合。,使用ADO对象建立对数据库的连接有两种方法:使用面向ODBC驱动器的OLEDB驱动程序建立连接,这种连接与任何有ODBC驱动器的数据库兼容。使用原始的OLEDB驱动程序建立连接。,ADO组件由ADODB对象库构成,ADODB对象库主要包含3个对象和2个数据集合。它们分别是:Connection对象、Recordset对象、Field对象、Fields集合、Error集合。ADO把绝大部分的数据库操作封装在上述3个对象中,在ASP页面中编程调用这些对象执行相应的数据库操作。,8.2Connection对象,Connection对象用来建立数据源和ASP程序之间的连接。它代表ASP程序与数据源的唯一对话,建立到数据源的连接后,可以在此基础上用RecordSet对象或Command对象对数据库进行查询、更新、插入、删除等操作。,8.2.1打开和关闭数据库连接,要实现打开和关闭数据库连接,首先要应用Connection对象创建数据连接,因为Connection对象不是ASP内置对象,要使用Connection对象,必须首先显式地创建它。,创建了Connection对象之后,需要打开该连接才能连接到数据库。若使用ODBC进行数据源连接,则对应的语法为:Connection对象也可直接连接到Access数据库,应用完Connection对象之后,用户最好关闭并释放Connection对象,来缓解数据库服务器的压力。其语法如下:,8.2.2Connection对象的属性,1ConnectionTimeOut属性:可设置或返回在终止尝试和产生错误之前打开连接需要等待的秒数。默认是15秒,语法格式如下:Setconn=server.createobject(“Adodb.connection”)Conn.connectiontimeout=302ConnectionString属性:可设置或返回用于建立到数据源的连接的信息:setconn=Server.CreateObject(ADODB.Connection)conn.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;datasource=DataSource=DataSource=DBQ=”initialcatalog=数据库名”数据库的DSN连接方法:setconn=Server.CreateObject(ADODB.Connection)Conn.open“DSN=DSN名称”,2Execute方法:此方法可用于执行指定的SQL语句,用于实现对数据库表的修改、插入、删除和查询等操作。其一般格式有以下两种:1)执行SQL查询语句时,将返回查询得到的记录数。语法为:Set对象变量名=Connection.Execute(“SQL查询语句”)dimconnSetConn=Server.CreateObject(ADODB.Connection)Conn.openprovider=microsoft.jet.oledb.4.0;datasource=&server.mappath(database.mdb)Setrs=Conn.Execute(SQL语句)2)执行操作性语句时,没有记录集的返回。语法为:Connection.ExecuteCommandText,RecordsAffected,Optionscommandtext:字符串类型,可以是SQL语句,表名称,存储过程等RecordsAffected:操作所影响的记录个数Options:告诉数据源commandtext的类型,1表示SQL语句;2表示表名;4表示存储过程;8表示不清楚;,3Close方法:该方法用于关闭连接对象,以释放所占用的系统资源。Conn.closeSetconn=nothing,8.3RecordSet对象,除了利用Connection对象的Execute方法可获得记录集外,利用ADO的RecordSet对象,也可获得记录集,且该方法所获得的记录集,具有更灵活的控制性和更强的功能。在打开记录集之前,可以详细设置记录集的游标和锁定类型,以决定可对一个记录集进行怎样的操作。同时该对象提供了一系列的方法和属性,通过编程可以非常方便的处理记录集,下面介绍该对象的应用。创建一个RecordSet对象实例,语法如下:Setrs=Server.CreateObject(“ADODB.RecordSet”),8.3.1RecordSet对象的属性,1ActiveConnection属性:通过设置RecordSet对象的ActiveConnection属性可以使Recordset对象与特定的Connection对象相关联,ActiveConnection属性可以是一个Connection对象名称或是一个包含数据源连接信息的字符串,如果连接被关闭,设置或返回连接的定义,如果连接打开,设置或返回当前的Connection对象。2Source属性:可以是一个Command对象名称、一条SQL语句或是一个指定的数据表等。,3CursorType属性:设置或返回一个Recordset对象的游标类型。在ADO中,定义了4种不同的游标(指针)类型。,4LockType属性:设置或返回当编辑Recordset中的一条记录时,可指定锁定类型的值。,5RecordCount属性:返回一个Recordset对象中的记录数目。6BOF属性:如果当前的记录位置在第一条记录之前,则返回true,否则返回fasle。7EOF属性:如果当前记录的位置在最后的记录之后,则返回true,否则返回fasle。利用该属性,可防止指针越界而发生错误。通常用来作为循环访问记录集结束的标志。8PageSize属性:设置或返回Recordset对象的一个单一页面上所允许的最大记录数。9PageCount属性:返回一个Recordset对象中的数据页数。10AbsolutePage属性:设置或返回一个可指定Recordset对象中页码的值。11AbsolutePosition属性:设置或返回一个值,此值可指定Recordset对象中当前记录的顺序位置(序号位置)。该属性一般是介于1和RecordCount属性值之间的整数。,8.3.2RecordSet对象的方法,1Open方法:RecordSet对象中最重要的方法是应用Open方法可打开一个记录集,其语法如下:记录集对象实例变量.OpenSource,ActiveConnection,CursorType,LockType,OptionsSource:该参数可以是含有一个SQL字符串、表格、视图名称或者存储过程调用的字符串ActiveConnection:该参数可以Connection对象的实例名或字符串。CursorType:用来确定服务器打开Recordset时应该使用的游标类型。LockType:用来确定服务器打开Recordset时应该使用的锁定类型。Options:该参数用于指定Source参数项的命令字符串的类型,其取值与对应的类型与Connection对象中Execute方法中Options参数相同,constadCmdText=1constadOpenStatic=3constadLockPessimistic=1setconn=Server.CreateObject(ADODB.Connection)conn.Provider=Microsoft.Jet.OLEDB.4.0conn.Openserver.mappath(database.mdb)fhsql=select*fromstudentsetrs=server.CreateObject(adodb.recordset)rs.openfhsql,conn,adOpenStatic,adLockReadOnly,adCmdText一些处理语句rs.closeSetrs=nothingconn.closesetconn=nothing,2RecordSet对象其它方法:RecordSet对象提供了如表所示的非常丰富的记录集方法,通过这些方法可实现对记录集的添加、删除、修改等各种操作。,8.5Errors数据集合和Error对象,当ADO对象的操作产生错误时,会有一个或多个Error对象被放到Connection对象的Errors集合中;据此,可获得产生错误的原因和来源,以便采取适当的措施,使程序更加完善。Error对象可通过建立的Connection对象的Errors数据集合取得。,8.5.1Errors数据集合,所有Error对象的集合用来响应一个连接(Connection)上的错误。Errors数据集合包括两个属性:Count和Item。1.Count属性:用来指示集合中有多少个Error对象,应用语法为:long=Errors集合变量.count。Errors集合的属性Count可以获得数据库是否发生了错误,如果没有错误发生,则Count等于0,否则大于0。2.Item属性:用来访问Errors集合中每一个Error对象的索引,可以根据这个值来访问一个特定的Error对象。应用语法为:SetErr=Errors.item(Index)或SetErr=Errors(Index)。,Errors集合有2个方法:Clear和Refresh,其含义如下。1.Clear方法:从Error集合中移去所有的Error对象。应用语法为Errors.Clear。2.Refresh方法:根据来自数据提供者的变化信息来更新集合中的Error对象。应用语法为Errors.Refresh。,8.5.2Error对象,Connection对象是用于与各类的数据库进行连接的,但在此过程中将会出现一些不可预测的错误,因而出现了Error对象。首先要清楚一个概念,Error对象是在连接数据库时产生的,而并非那些运行时的实时错误。,8.6Fields数据集合,每个Field对象对应于RecordSet中的一列,由多个Field对象可以构成Fields数据集合。使用Field对象的Value属性可设置或取得当前记录的数据。,8.6.1Fields数据集合,所有Field对象的集合都关联着一个记录集(RecordSet)对象。Fields集合包含记录集中每一字段值,相当于访问表格的某一个单元格。访问Fields集合的方法有多种,比如访问以上数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产计划第1章
- 市场营销计划组织与审计
- 2025年黑龙江货运丛业资格证考试题库答案
- 2025年金昌货运资格证模拟考试题库
- 2025年松原货运从业资格证考试卷
- 第2课+中华文化的世界意义高二下学期历史统编版(2019)选择性必修3
- 重庆市部分区2024-2025学年高二(上)期末物理试卷【含解析】
- 四川省达州市2023-2024学年高一(上)期末物理试卷【含解析】
- 小升初统编版语文衔接课程:《从感知比喻到运用比喻》教学设计001
- 智能手机用户位置隐私保护
- 工业引风机知识培训课件
- 2025年南京铁道职业技术学院单招职业适应性测试题库一套
- 《喜剧天赋提升》课件
- 第16课《青春之光》教学设计 2024-2025学年统编版语文七年级下册
- 2025年哈尔滨幼儿师范高等专科学校单招职业技能测试题库1套
- 2025年湖南城建职业技术学院单招职业倾向性测试题库及答案一套
- 2025广东省安全员A证考试题库
- 2025年广东深圳高三一模高考英语试卷试题(含答案详解)
- 《酒店服务礼仪细节》课件
- 《建筑工程混凝土施工质量控制课件》
- 2025-2030年中国煤炭行业发展动态及前景趋势分析报告
评论
0/150
提交评论