第三章 ADO技术 3.1 ADO概述 ADO全名是ActiveX Data Object(ActiveX数据对象),是一组优化的访问数据库的专用对象集,它为ASP提供了完整的站点数据库解决方案,是ASP技术的核心之一。它作用在服务器端,提供含有数据库信息的主页内容,通过执行SQL命令,让用户在浏览器画面中输入,更新和删除站点数据库的信息。 内容来自www.paper51.com
ADO主要包括Connection、RecordSet和Command三个对象, 它们的主要功能如下: 内容来自论文无忧网 www.paper51.com ·Connection对象:负责打开或连接数据库文件; http://www.paper51.com
·RecordSet对象:存取数据库的内容; 内容来自论文无忧网 www.paper51.com ·Command对象:对数据库下达行动查询指令,以及执行SQL Server的存储过程。 内容来自www.paper51.com 3.2 使用ADO数据对象 paper51.com
在ASP中,ADO可以看作是一个服务器组件,更简单的说,是一系列独立的对象。利用ADO对象完成对数据库的操作,具体步骤如下: copyright paper51.com ·创建数据库源名(DSN) 内容来自www.paper51.com ·创建数据库连接(Connection) paper51.com
·创建数据对象 paper51.com ·操作数据库 内容来自论文无忧网 www.paper51.com
·关闭数据对象 http://www.paper51.com 3.2.1创建数据库源名DSN(配置ODBC) paper51.com ODBC(Open DataBase Connection)既开放数据库连接,是一种允许应用程序从各种跨平台数据访问已有数据源标准规格中数据的应用程序编程接口。 copyright paper51.com 在使用ADO之前,必须先建立一个数据源。数据源包含了如何与一个数据提供者进行连接的信息。在这种情况下,将使用数据源与数据库建立连接。而在建立一个与Web服务器一起使用的数据源时,应该建立一个文件数据源。建立文件数据源的好处是连接信息存储在一个实际的文件中。 内容来自www.paper51.com 数据库驱动程序使用Data Source Name(DSN)定位和标识特定的ODBC兼容数据库,将信息从Web应用程序传递给数据库。通过ODBC可以选择希望创建的DSN类型:系统DSN、用户DSN、文件DSN。 paper51.com 用户和系统DSN存储在Windows系统注册表中,系统DSN允许所有的用户登陆到特定的服务器上去访问数据库,而用户DSN使用适应的安全身份证明限制数据库到特定用户的连接。文件DSN用于从文本文件中获取表格,提供了对多用户的访问,并且通过复制DSN文件,可以轻易地从一个服务器转移到另一个服务器。使用Access时,往往使用文件DSN方式,而使用SQL Server系统时多用系统DSN。创建DSN步骤如下: http://www.paper51.com 通过在Windows的“开始”|“设置”菜单打开“控制面板”,双击“ODBC数据源管理器”图标,然后选择“文件DSN”属性页,出现如图画面: copyright paper51.com http://www.paper51.com 单击“添加”按钮,出现选择数据库驱动程序对话窗口,如下图所示。 内容来自www.paper51.com
paper51.com 在创建数据源选择驱动程序时,要根据使用的数据库来选择相应的驱动。如果在列表中没有驱动程序,则需安装其ODBC驱动。在“创建新数据源”对话框中,从列表框选择“Microsoft AccessDriver”,然后单击“下一步”按钮。这时键入DSN文件名,本系统的数据源名为“myDB”,如图所示。然后单击“下一步”按钮,则显示刚配置好的文件数据源的文件名和驱动程序信息,单击“完成”后创建了文件数据源。这时得到“ODBC Microsoft Access安装程序”对话框,。在安装对话框中单击“选择”,选择Microsoft Access数据库文件(*.mdb),如不存在数据库,则可以使用“创建”选项得到一个新的Access数据库。回到安装对话框,选择“确定”后回到数据源管理器窗口,这时可以在列表中看到创建的名为myDB.dsn的文件数据源。 内容来自www.paper51.com
copyright paper51.com DSN是应用程序和数据库的桥梁,当ODBC驱动程序传送SQL指令时,DSN告诉它操作哪一个数据库。如果数据库平台改变了,只要表的结构没变,不用改动程序,只要重新在系统中配置DSN即可。 内容来自www.paper51.com
3.2.2创建数据库连接 http://www.paper51.com 在ASP文件中如果要访问数据,必须首先创建与数据库的连接。ADO提供的Connection对象,可以用来打开一个数据库连接,格式如下: 内容来自www.paper51.com <% Set conn =Server.CreateObject("ADODB.Connection") /*创建一个连接对象*/ 内容来自www.paper51.com
connstr="driver= {Microsoft Access Driver(*.mdb)}; paper51.com
dbq =“&server.Mappath(“sheibei.mdb”)” http://www.paper51.com conn.openconnstr %> /*打开数据库连接*/ paper51.com 在连接了数据库后,便可对数据库进行添加、修改、删除等操作了。这方面内容在第三章节中有详细说明,这里不做叙述。 http://www.paper51.com
3.2.3创建数据对象 http://www.paper51.com ADO的数据对象通常保存的是查询结果。RecordSet是ADO中最复杂的对象,它保存的是一条条的记录,并标有当前记录。创建方法如下: paper51.com SqlStr=“SELECT *FORM shebei.mdb” 内容来自论文无忧网 www.paper51.com Set Record Set=Conn.Execute(sqlStr) /*创建并打开对象RecordSet */ 内容来自www.paper51.com 执行这条语句后,对象RecordSet中就保存了shebei.mdb表中的所有记录。 http://www.paper51.com
3.2.4操作数据库 copyright paper51.com 通过调用连接对象的Execute方法将查询结果返回给一个数据对象。Execute方法的参数对象是一个标准的SQL语句串,例如: paper51.com sql="select * from admin whereadmin_name='"&adminname&"' andadmin_password='"&adminpwd&"'" copyright paper51.com
set rs=conn.execute(sql) paper51.com 3.2.5关闭数据对象和连接 paper51.com 在使用ADO之后,一定要记住关闭它,因为它占用了一定的服务器资源。我们可以通过调用方法Close实现关闭,然后释放它。例如: 内容来自论文无忧网 www.paper51.com
Record Set.close copyright paper51.com
Set RecordSet=Nothing /*关闭创建的数据对象*/ copyright paper51.com Conn.close paper51.com
Set Conn=Nothing /*关闭创建的连接对象*/ copyright paper51.com 3.3 分页技术 http://www.paper51.com
为了提高页面的读取速度,系统在显示记录时采用了分页技术。分页技术主要有两种方法: http://www.paper51.com 一是将数据库中所有符合查询条件的记录一次性的都读入 RecordSet 中,存放在内存中,然后通过 ADO RecordSet 对象所提供的几个专门支持分页处理的属性: PageSize( 页大小 )、 PageCount( 页数目 ) 以及 AbsolutePage( 绝对页 ) 来管理分页处理。 http://www.paper51.com 二是根据客户的指示,每次分别从符合查询条件的记录中将规定数目的记录数读取出来并显示。 这个主要是用在查询记录时使用。 paper51.com 在这里,我们以系统程序为例。进行 ADO 存取数据库时的分页显示,其实就是对 RecordSet 的记录进行操作。所以我们首先必须了解 Reordset 对象的属性和方法: paper51.com
BOF 属性:当前游标指到 RecordSet 的第一条记录。 copyright paper51.com
EOF 属性:当前游标指到 RecordSet 的最后一条记录。 内容来自www.paper51.com
Move 方法:移动游标到 RecordSet 中的某一条记录。 copyright paper51.com
AbsolutePage 属性:设定当前记录的位置是位于哪一页 http://www.paper51.com AbsolutePosition 属性:显示当前游标在 RecordSet 中的位置。 paper51.com PageCount 属性:显示 RecordSet 对象包括多少“页”的数据。 内容来自www.paper51.com PageSize 属性:显示 RecordSet 对象每一页显示的记录数。 paper51.com
RecordCount 属性:显示 RecordSet 对象记录的总数。 paper51.com 在了解RecordSet对象的属性和方法后,介绍如何运用他们来实现分页显示。首先为PageSize属性设置一个值,本系统为10条记录;然后使用RecordCount属性来确定记录的总数;再用记录总数除以PageSize就可得到可显示的页面的总数;最后通过AbsolutePage 属性就能完成对指定页的访问。 copyright paper51.com 第四章 数据库设计 http://www.paper51.com 目前的网络开发,已经不是以前静态页面打天下的时候了。现在的网站,几乎都要涉及到大量的信息,传统的文件方式已经不在适用。用数据库来保存信息已经成为各种网络应用中的首选。对于一个ASP网站来说,Web数据库尤为重要,甚至可以说,数据库是一个网站的根本,而ASP只不过是一个工具而已。 http://www.paper51.com Web应用程序设计少不了数据库,因为只有数据库才能大量、快速地处理信息。使用ASP可以读取Access和SQL Server数据库,也可以读取其他ODBC(开放式数据库互联)兼容的数据库。 http://www.paper51.com |