《第8章利用ADO实现数据库的.ppt》由会员分享,可在线阅读,更多相关《第8章利用ADO实现数据库的.ppt(36页珍藏版)》请在三一办公上搜索。
1、第7章 利用ADO实现数据库的存取,本章要点,Connection对象Recordset对象Command对象Field对象Error对象,ASP作为动态Web应用程序,其开发Web数据库是其最重要的环节。ADO(ActiveX Data Objects ActiveX数据对象)是微软提供的新一代数据库存取访问技术,ASP内置的ADO组件是数据库开发的重要工具。应用ADO组件,通过ODBC驱动程序或OLE DB链接字符串可实现ASP与数据库之间的连接,通过ADO组件提供的各种方法实现数据检索和数据编辑等操作。本章将重点介绍ADO对象的结构和配置,以及各种数据访问对象。本章将详细介绍Active
2、X数据对象及其在ASP编程中的应用。,8.1 ADO简介,ADO对象的主要优点是高速、容易使用、占用内存和磁盘空间少,所以非常适合于作为服务器端的数据库访问技术。ADO对象是多线程的,在出现大量并发请求时,也同样可以保持服务器的运行效率,并且通过连接池技术以及对数据库连接资源的完全控制,提供与远程数据库的高效连接与访问,同时它还支持事务处理,以开发高效率、高可靠性的数据库应用程序。,ADO结合了OLE DB易于使用的特性以及RDO(Remote Data Objects 远程数据对象)和DAO(Data Access Ojects 数据访问对象)模型中的最好特性,并将它们重新组织在一个对象模型
3、中。ADO包含所有可以被OLE DB标准对象描述的数据类型,即ADO对象模型具有扩展性,即使对于那些从来没有见到过的记录集的信息格式,只要使用正常的ADO编程对象,就能够可视化地处理所有的工作,ADO对象模型给开发人员提供了一种快捷、简单、高效的数据库访问方法,可以在脚本中使用ADO对象建立对数据库的连接,并从数据库中读取记录,形成需要的对象集合。,使用ADO对象建立对数据库的连接有两种方法:使用面向ODBC驱动器的OLE DB驱动程序建立连接,这种连接与任何有ODBC驱动器的数据库兼容。使用原始的OLE DB驱动程序建立连接。,ADO组件由ADODB对象库构成,ADODB对象库主要包含3个对
4、象和2个数据集合。它们分别是:Connection对象、Recordset对象、Field对象、Fields集合、Error集合。ADO把绝大部分的数据库操作封装在上述3个对象中,在ASP页面中编程调用这些对象执行相应的数据库操作。,8.2 Connection对象,Connection对象用来建立数据源和ASP程序之间的连接。它代表ASP程序与数据源的唯一对话,建立到数据源的连接后,可以在此基础上用RecordSet对象或Command对象对数据库进行查询、更新、插入、删除等操作。,8.2.1 打开和关闭数据库连接,要实现打开和关闭数据库连接,首先要应用Connection对象创建数据连接,
5、因为Connection对象不是ASP内置对象,要使用Connection对象,必须首先显式地创建它。,创建了Connection对象之后,需要打开该连接才能连接到数据库。若使用ODBC进行数据源连接,则对应的语法为:Connection对象也可直接连接到Access数据库,应用完Connection对象之后,用户最好关闭并释放Connection对象,来缓解数据库服务器的压力。其语法如下:,8.2.2 Connection对象的属性,1ConnectionTimeOut属性:可设置或返回在终止尝试和产生错误之前打开连接需要等待的秒数。默认是 15 秒,语法格式如下:Set conn=serv
6、er.createobject(“Adodb.connection”)Conn.connectiontimeout=302ConnectionString 属性:可设置或返回用于建立到数据源的连接的信息:set conn=Server.CreateObject(ADODB.Connection)conn.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;data source=&server.mappath(database.mdb)3DefaultDatabase 属性:可设置或返回一个字符串值,该值是特定 Connection 对象上的默认
7、数据库的名称:set conn=Server.CreateObject(ADODB.Connection)conn.DefaultDatabase=database.mdb,4Provider属性:可设置或返回包含特定 Connection 对象的提供者名称的字符串值。默认是(Microsoft OLE DB provider for ODBC),连接关闭时可读写:set conn=Server.CreateObject(ADODB.Connection)conn.Provider=Microsoft.Jet.OLEDB.4.0conn.Open(Server.Mappath(database
8、.mdb)response.write(conn.Provider)conn.close 5State 属性:可返回一个值,为只读。该值描述对象的当前状态是打开、关闭、正在连接、正在执行还是正在检索数据。0:对象已经关闭1:对象已经打开2:对象正在连接 4:对象正在执行命令8:正在检索对象的行,8.2.3 Connection对象的方法,1Open 方法:用于打开与数据源的连接,只有调用了Connection对象的Open方法后,Connection对象才会真正存在,然后才能发命令对数据源产生作用。语法为:connection.Open connectionstring,userID,pass
9、wordconnectionstring:可选。一个包含有关连接的信息的字符串值。该字符串由一系列被分号隔开的 parameter=value 语句组成的。userID:可选。一个字符串值,包含建立连接时要使用的用户名称。Password:可选。一个字符串值,包含建立连接时要使用的密码。,直接将数据源连接字符串传递给open方法:set conn=Server.CreateObject(ADODB.Connection)str=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Data Source=&Server.MapPath(database.md
10、b)conn.connectionString=strconn.Open,Access数据库直接的连接方法:Set conn=server.createobject(“Adodb.connection”)Conn.open“Driver=Microsoft Access Driver(*.mdb);DBQ=”initial catalog=数据库名”数据库的DSN连接方法:set conn=Server.CreateObject(ADODB.Connection)Conn.open“DSN=DSN名称”,2Execute方法:此方法可用于执行指定的SQL语句,用于实现对数据库表的修改、插入、删
11、除和查询等操作。其一般格式有以下两种:1)执行SQL查询语句时,将返回查询得到的记录数。语法为:Set 对象变量名=Connection.Execute(“SQL查询语句”)dim connSet Conn=Server.CreateObject(ADODB.Connection)Conn.open provider=microsoft.jet.oledb.4.0;data source=&server.mappath(database.mdb)Set rs=Conn.Execute(SQL语句)2)执行操作性语句时,没有记录集的返回。语法为:Connection.Execute Comman
12、dText,RecordsAffected,Optionscommandtext:字符串类型,可以是SQL语句,表名称,存储过程等RecordsAffected:操作所影响的记录个数Options:告诉数据源commandtext的类型,1表示SQL语句;2表示表名;4表示存储过程;8表示不清楚;,3Close方法:该方法用于关闭连接对象,以释放所占用的系统资源。Conn.closeSet conn=nothing,8.3 RecordSet对象,除了利用Connection对象的Execute方法可获得记录集外,利用ADO的RecordSet对象,也可获得记录集,且该方法所获得的记录集,具有
13、更灵活的控制性和更强的功能。在打开记录集之前,可以详细设置记录集的游标和锁定类型,以决定可对一个记录集进行怎样的操作。同时该对象提供了一系列的方法和属性,通过编程可以非常方便的处理记录集,下面介绍该对象的应用。创建一个RecordSet对象实例,语法如下:Set rs=Server.CreateObject(“ADODB.RecordSet”),8.3.1 RecordSet对象的属性,1ActiveConnection属性:通过设置RecordSet对象的ActiveConnection属性可以使Recordset对象与特定的Connection对象相关联,ActiveConnection属
14、性可以是一个Connection对象名称或是一个包含数据源连接信息的字符串,如果连接被关闭,设置或返回连接的定义,如果连接打开,设置或返回当前的 Connection 对象。2Source属性:可以是一个Command对象名称、一条SQL语句或是一个指定的数据表等。,3CursorType属性:设置或返回一个 Recordset 对象的游标类型。在 ADO中,定义了 4种不同的游标(指针)类型。,4LockType属性:设置或返回当编辑 Recordset 中的一条记录时,可指定锁定类型的值。,5RecordCount属性:返回一个 Recordset 对象中的记录数目。6BOF属性:如果当前
15、的记录位置在第一条记录之前,则返回 true,否则返回 fasle。7EOF属性:如果当前记录的位置在最后的记录之后,则返回 true,否则返回 fasle。利用该属性,可防止指针越界而发生错误。通常用来作为循环访问记录集结束的标志。8PageSize属性:设置或返回 Recordset 对象的一个单一页面上所允许的最大记录数。9PageCount属性:返回一个 Recordset 对象中的数据页数。10AbsolutePage属性:设置或返回一个可指定 Recordset 对象中页码的值。11AbsolutePosition属性:设置或返回一个值,此值可指定 Recordset 对象中当前记
16、录的顺序位置(序号位置)。该属性一般是介于1和RecordCount属性值之间的整数。,8.3.2 RecordSet对象的方法,1Open方法:RecordSet对象中最重要的方法是应用Open方法可打开一个记录集,其语法如下:记录集对象实例变量.Open Source,ActiveConnection,CursorType,LockType,Options Source:该参数可以是含有一个SQL字符串、表格、视图名称或者存储过程调用的字符串ActiveConnection:该参数可以Connection对象的实例名或字符串。CursorType:用来确定服务器打开Recordset时应该
17、使用的游标类型。LockType:用来确定服务器打开Recordset时应该使用的锁定类型。Options:该参数用于指定Source参数项的命令字符串的类型,其取值与对应的类型与Connection对象中Execute方法中Options参数相同,const adCmdText=1const adOpenStatic=3const adLockPessimistic=1 set conn=Server.CreateObject(ADODB.Connection)conn.Provider=Microsoft.Jet.OLEDB.4.0conn.Open server.mappath(data
18、base.mdb)fhsql=select*from studentset rs=server.CreateObject(adodb.recordset)rs.open fhsql,conn,adOpenStatic,adLockReadOnly,adCmdText一些处理语句rs.closeSet rs=nothingconn.close set conn=nothing,2RecordSet对象其它方法:RecordSet对象提供了如表所示的非常丰富的记录集方法,通过这些方法可实现对记录集的添加、删除、修改等各种操作。,8.5 Errors数据集合和Error对象,当ADO对象的操作产生错
19、误时,会有一个或多个Error对象被放到Connection对象的Errors集合中;据此,可获得产生错误的原因和来源,以便采取适当的措施,使程序更加完善。Error对象可通过建立的Connection对象的Errors数据集合取得。,8.5.1 Errors数据集合,所有Error对象的集合用来响应一个连接(Connection)上的错误。Errors数据集合包括两个属性:Count和Item。1.Count属性:用来指示集合中有多少个Error对象,应用语法为:long=Errors集合变量.count。Errors集合的属性Count可以获得数据库是否发生了错误,如果没有错误发生,则Co
20、unt等于0,否则大于0。2.Item属性:用来访问Errors集合中每一个Error对象的索引,可以根据这个值来访问一个特定的Error对象。应用语法为:Set Err=Errors.item(Index)或Set Err=Errors(Index)。,Errors集合有2个方法:Clear和Refresh,其含义如下。1.Clear方法:从Error集合中移去所有的Error对象。应用语法为Errors.Clear。2.Refresh方法:根据来自数据提供者的变化信息来更新集合中的Error对象。应用语法为Errors.Refresh。,8.5.2 Error对象,Connection对象
21、是用于与各类的数据库进行连接的,但在此过程中将会出现一些不可预测的错误,因而出现了Error对象。首先要清楚一个概念,Error对象是在连接数据库时产生的,而并非那些运行时的实时错误。,8.6 Fields数据集合,每个Field对象对应于RecordSet中的一列,由多个Field对象可以构成Fields数据集合。使用Field对象的Value属性可设置或取得当前记录的数据。,8.6.1 Fields数据集合,所有Field对象的集合都关联着一个记录集(RecordSet)对象。Fields集合包含记录集中每一字段值,相当于访问表格的某一个单元格。访问Fields集合的方法有多种,比如访问以上数据表student中姓名字段的值,可应用如下方法:rs.Fields.Item(1)rs.Fields.Item(1).valuers.Fields.Item(“姓名”)rs.Fields.Item(“姓名”).valuers.Fields(1)rs.Fields(1).valuers.Fields(“姓名”)rs.Fields(“姓名”).valuers.(1)rs.(1).valuers.(“姓名”)rs.(“姓名”).value,例子1:创建和显示记录集例子2:记录集分页显示例子3:添加记录例子4:修改记录例子5:删除记录,
链接地址:https://www.31ppt.com/p-5825500.html