使用ADO组件访问数据库

上传人:ll****x 文档编号:243336618 上传时间:2024-09-21 格式:PPT 页数:31 大小:90KB
返回 下载 相关 举报
使用ADO组件访问数据库_第1页
第1页 / 共31页
使用ADO组件访问数据库_第2页
第2页 / 共31页
使用ADO组件访问数据库_第3页
第3页 / 共31页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,8,章,使用,ADO,组件访问数据库,ADO,组件是,ASP,访问数据库最方便的工具。本章首先简单介绍数据库标准语言,SQL,的使用,然后讲解如何在,Windows 2000,配置,Microsoft Access,和,SQL Server,数据库。根据,ASP,访问数据库的方式,依次讲解,ASP,的,Connection,、,Command,、,Recordset,对象。,1,8.1 SQL,简介,SQL,(,Structured Query Language,,结构化查询语言)是数据库的标准语言。在,ASP,中,无论何时访问一个数据库,都要使用,SQL,语言。因此,读者如果要精通,ASP,编程,必须掌握好,SQL,语言。,SQL,语言是数据库的标准语言,应用非常简单,但是这并不意味着能轻松的掌握它。,SQL,数据库中的数据都存储在数据表中。一般所谓的将信息存储在数据库中,实际上就是将信息存储在数据表中。当考虑怎样把信息存储在数据库中时,就相当于是在考虑怎样把它们存储在数据表中。(具体内容请参照本书),2,8.1.1,数据库查询,SQL,的主要功能之一就是数据库查询,即从数据表中查询满足条件的记录。在,SQL,中,使用,Select,语句完成数据库的查询操作。语法如下:,Select,字段,1,字段,2, from,数据表,(where,满足的条件,),(具体内容请参照本书),3,8.1.2,查询结果排序,SQL,的突出特点是数据表中没有内在的顺序。从一个表中取第二个记录是没有意义的。从,SQL,的角度来看,没有任何一个记录在其他记录之前。不过可以使用,Order by,子句来操纵一个,SQL,查询结果的顺序。,Order by,默认为升序排列,如果要降序排列,可以加,Desc,关键字。将,8.1.1,节的查询结果按照,UserName,的升序排列,代码如下:(具体内容请参照本书),4,8.1.3,插入、删除和更新记录,在,SQL,中,可以对表的记录进行各种操作,包括插入、删除和更新记录等。下面将分别讲述这三种操作。在表中插入一条记录,一般使用,SQL,语言中的,Insert,语句。语法如下:,Insert Into,数据表,(,字段,1,,字段,2) values (,字段,1,的值,字段,2,的值,),(具体内容请参照本书),5,8.1.4,存储过程,存储过程也称为存储查询。它是存储在数据库中预先定义的,SQL,语句。它将常用的或很复杂的工作,预先用,SQL,语句写好并用一个指定的名称存储起来。使用时,只需调用该存储过程,即可自动完成命令。,现在的程序员都利用创建和使用存储过程从而取代在代码中直接使用,SQL,字符串,这样做是因为存储过程具有以下优点:(具体内容请参照本书),6,8.2 ADO,概述,ADO,全称为,ActiveX Data Object,,它是一项数据库访问技术。它提供了网页开发人员实时存取数据库的能力。在数据库的应用中,使用,ADO,编写的应用程序可以存取在,Internet,上任何地方的资源。例如,可以在家中通过浏览器填写购物单,购买千里之外的物品。,ADO,非常简化的接口使得原本复杂冗长的程序编写工作变得简单易学,并且强有力地支持了各种应用程序的复杂特性的需求。,ADO,使用,RecordSet,(记录集)对象作为数据的主要界面。,ADO,可以使用,VBScript,、,JavaScript,等脚本语言来控制数据库的存取以及输出查询结果。,7,8.2.1 ADO,的对象,在,ADO,中包含以下七种对象:,1,Connection,对象,2,Command,对象,3,RecordSet,对象,4,Parameter,对象,5,Field,对象,6,Error,对象,7,Property,对象,8,8.2.2 ADO,的操作流程,典型的,ADO,操作流程如下:,(,1,)连接到数据源。(,2,)指定访问数据源的命令,可以同时指定变量参数,通常涉及到,Command,对象。(,3,)执行命令,例如一个,Select,脚本。(,4,)如果命令使数据按表中的行的形式返回,则将这些行存储在易于检查、操作或更改的缓存中。(,5,)在适当情况下,可以通过修改缓存行的内容来更新数据源。(,6,)提供常规方法检测错误,涉及,Error,对象。,在典型情况下,需要在编程过程中采用所有这些步骤。但是,由于,ADO,有很强的灵活性,所以最后只需执行部分模块就能做一些有用的工作。,9,8.3,创建,ODBC DSN,文件,作为创建数据连接的一部分,需要添加数据源的名称。数据源名称,DSN,(,Data Source Name,)存储有关如何连接到指定提供者的信息。一个,DSN,指定了数据库的物理位置、用于访问数据库的驱动程序的类型和访问数据库的驱动程序所需要的任何其他参数。,下面将讲解如何配置,Microsoft Access,数据库和,SQL Server,数据库的,DSN,。,10,8.3.1,配置,Microsoft Access,数据库文件的,DSN,ODBC,数据源管理器提供三种不同类型的,DSN,:用户,DSN,、系统,DSN,和文件,DSN,。用户,DSN,在,Windows NT,系统注册表中存储如何与指定数据提供者连接的信息,用户,DSN,只对当前用户可见,而且只能用于当前机器上。系统,DSN,也在系统注册表中存储数据库的信息,系统,DSN,添加的数据源本机上的所有用户都可以看到。文件,DSN,是一个文本文件,它包含数据库的连接信息,该文件保存在计算机中,而且可以通过复制轻易地从一个服务器转移到另一个服务器。在,Window 2000/XP,下,打开,【,控制面板,】,窗口,如图,8-1,所示,就可以创建基于,DSN,的文件了。(具体内容请参照本书),11,8.3.2,配置,SQL Server,数据库文件,DSN,下面使用,SQL Server,的,ODBC,默认设置,来配置,SQL Server,的数据库文件。(具体内容请参照本书),12,8.3.3,连接数据库,在,ASP,中,连接数据库有两种方式,一种是通过数据库文件,DSN,连接数据库,另一种是直接连接数据库。这两种方式都需要用到,ADO,的,Connection,对象。下面首先来看一下如何使用第一种方式来连接数据库。通过数据库文件,DSN,来连接数据库,首先要配置数据库文件,DSN,,这在,8.3.1,节和,8.3.2,节已经讲述了,并且已经建立了一个系统,DSN,,并命名为,search,,那么连接代码如下所示。(具体内容请参照本书),13,8.4,使用,Connection,对象,与数据库的所有通信都要通过一个打开的连接来进行。在对数据库进行数据的插入和读取之前,必须先打开与这个数据库的连接。本节将介绍,Connection,对象的属性和方法,以便管理数据库的连接。,14,8.4.1 Connection,对象的属性和方法,Connection,对象提供了丰富的属性和方法,用来创建、保存和设置连接信息。表,8-2,列举了,Connection,对象的属性。(具体内容请参照本书),15,8.4.2,打开和关闭数据库连接,Connection,对象使用,Open(),和,Close(),方法来打开和关闭数据库的连接。要打开数据库,首先要创建,Connection,对象的一个实例,然后调用,Connection,对象的,Open(),方法。当结束对数据库的操作之后,再调用,Connection,对象的,Close(),方法关闭数据库连接。以下代码为一个打开和关闭数据库连接的例子。(具体内容请参照本书),16,8.4.3,执行,SQL,语句,通过,Connection,对象执行,SQL,语句,要使用,Execute(),方法。这个方法的语法有两种形式。,当从数据库中不返回结果时,语法如下:,Connection.Execute CommandText, RecordsAffected, Options,当从数据库中返回结果时,语法如下,它返回一个,RecordSet,对象:,Set Recordset = Connection.Execute (CommandText, RecordsAffected, Options),(具体内容请参照本书),17,8.4.4,处理事务,所谓的事务就是一组语句的整体。当作为事务处理时,这组语句中有一条语句没有成功执行,则所有的语句都被取消执行。例如,当假如某人在银行取钱时,取钱和帐户更新两个操作任意一个出现错误时,另一个操作都将会取消执行,但是如果不采用事务处理,则当该人取了钱之后,帐户更新出现错误,银行最后的记录是该人取了钱,但是帐户上的金额没有减少,这就导致数据的不正确。可见,采用事务处理是非常有用的,它能保证数据库操作的完整性、准确性。(具体内容请参照本书),18,8.4.5,设置连接数据源或提交命令的等待时间,为了防止在连接应用程序的用户过多时,导致网络堵塞或服务器负载过重,可以使用,Connection,对象的,ConnectionTimeOut,属性来设置连接数据源的等待时间,使用,CommandTimeOut,属性设置提交命令的等待时间。下面的脚本设置,ConnectionTimeOut,属性,在取消连接尝试之前等待,10,秒。打开,Connection,对象之后,设置了,CommandTimeOut,属性,在取消执行命令之前等待,10,秒。具体代码如下:(具体内容请参照本书),19,8.5,使用,Command,对象,Command,对象是为处理各种类型的命令而设计的,特别是为那些需要参数的命令。与,Connection,对象相似,,Command,对象也可以分为返回运行记录集和不返回运行记录集两种类型的命令。实际上,如果命令不含有参数,那么它并不关心是使用,Connection,对象、,Command,对象或者,RecordSet,对象。,20,8.5.1 Command,对象的属性和方法,Command,对象的属性和方法相对来说比较少。它的属性见表,8-4,所示。(具体内容请参照本书),21,8.5.2,执行,SQL,语句,在前面编者已经介绍了如何用,Connection,对象的,Execute(),方法执行,SQL,语句。使用,Command,对象执行,SQL,语句,就是将,SQL,语句赋值给,Command,对象的,CommantText,属性,然后执行,Execute(),方法。同样,,Command,对象的,Execute(),方法也有两种形式:,不返回记录集的语法如下:,Command.Execute RecordsAffected, Options,返回记录集的语法如下:,Set Recordset = Command.Execute (RecordsAffected, Options),(具体内容请参照本书),22,8.5.3,调用存储过程,在,8.4,节知道,使用,Connection,对象的,Execute(),方法能够执行,SQL,语句,那么为什么还要使用,Command,对象呢?这是因为使用,Command,对象有一个主要的优点,就是可以调用存储过程。,Example8.asp,是一个调用存储过程的例子。首先在,SQL Server 2000,中建立一个名为,sp_myproc,的存储过程,代码如下:(具体内容请参照本书),1,使用存储过程的返回值,2,输出参数和输入参数,23,8.6,使用,RecordSet,对象,RecordSet,对象(记录集对象)是,ADO,中最常用的对象,是用于保存查询数据的重要对象。下面首先来了解一下,RecordSet,对象中涉及到的一些概念。,24,8.6.1 RecordSet,对象中的一些概念,1,RecordSet,(记录集),2,游标,3,锁定类型,4,书签,25,8.6.2 RecordSet,对象的属性和方法,RecordSet,对象有许多属性和方法。它的这些属性和方法为程序员编程带来了很大的方便。下面编者只列举了,RecordSet,对象部分经常使用的属性和方法。,RecordSet,对象的属性见表,8-4,所示。(具体内容请参照本书),26,8.6.3,创建记录集,一般使用,RecordSet,对象的,Open(),方法创建一个记录集。,Open(),方法的语法如下:,RecordSet.Open Source,ActiveConnection,CursorType,LockType,_,Options, ,表示为可选的参数。其中,,Source,表示数据源,可以是数据库中的表名、存储过程、,SQL,语句或,Command,对象。,ActiveConnection,表示记录集使用的连接,可以是一个连接字符串或者一个创建的,Connection,对象。,CursorType,是使用的游标类型,,LockType,是使用的锁定类型,这两个参数的定义见,8.6.1,节。,Options,用来通知提供者,Source,参数的内容是什么,如表、文本字符串等。(具体内容请参照本书),27,8.6.4,显示记录集,创建记录集之后,就要显示记录集中的记录。显示记录集需要用到,RecordSet,对象的多个属性和方法,其中用的最多的是,EOF,、,BOF,、,MoveNext(),、,RecordCount,等。显示记录集的方法有多个,主要是采用循环语句来实现。,首先来看使用,Do While,循环语句来显示记录集。,Example16.asp,实现了一个记录集在页面上的显示。首先在,Do While,条件语句中判断当前指针所指的记录是否已经超出该记录集的范围,如果超出范围,在跳出循环。如果没有超出范围,则读取并显示某一记录的值,然后使用,MoveNext(),方法指向下一条记录。例如,,Example16.asp,代码如下:(具体内容请参照本书),28,8.6.5,实现记录集的分页显示,在网站搜索或用户管理时,如果记录数非常多,把这些记录显示在一页上,是非常不明智的,浏览的时候非常不方便。这时可以采用分页显示记录的方法。将数据库的查询结果分页显示的方法很多,但是主要有下面两种:,将数据库中所有符合查询条件的记录一次性的都读入,RecordSet,中,存放在内存中,然后通过,ADO RecordSet,对象所提供的三个专门支持分页处理的属性:,PageSize,(逻辑页中记录个数)、,PageCount,(逻辑页数目)以及,AbsolutePage,(当前页)来实现分页显示。,根据客户的指示,每次分别从符合查询条件的记录中将规定数目的记录数读取出来并显示。,29,8.6.6,读取记录到数组中,在特定情况下,需要把记录集读取到数组中。例如,需要修改一个记录集中的数据,但又不想改变记录集中的记录本身,这时可以把记录读取到数组中。,要把记录集中的记录分配给一个数组,应使用,RecordSet,对象的,GetRows(),方法。,Example19.asp,使用,GetRows(),方法创建了一个数组并将记录集中的记录分配给数组,最后在网页上显示这个数组中的所有记录。具体代码如下:(具体内容请参照本书),30,8.7,本章小结,在这一章具体讲述了在,ASP,中如何使用,ADO,组件访问数据库,其中包括数据库的配置和连接,,ADO,三个重要对象:,Connection,对象、,Command,对象和,RecordSet,对象的属性和方法及其用法。,31,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!