第6章 Web数据库程序设计 - 江西师范大学软件学院_第1页
第6章 Web数据库程序设计 - 江西师范大学软件学院_第2页
第6章 Web数据库程序设计 - 江西师范大学软件学院_第3页
第6章 Web数据库程序设计 - 江西师范大学软件学院_第4页
第6章 Web数据库程序设计 - 江西师范大学软件学院_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第6 6章章 WebWeb数据库程序设计数据库程序设计 l1 Web数据库访问技术数据库访问技术l2 ODBC接口接口l3 数据库语言数据库语言SQLl4 使用使用ADO访问数据库访问数据库 l5 用用Connection对象连接数对象连接数据库据库l6 用用Command对象执行数据对象执行数据库操作库操作l7 用用RecordSet对象控制数据对象控制数据l8 程序设计举例程序设计举例网站会员网站会员登录与数据修改登录与数据修改l本本 章章 小小 结结l数据库应用系统在现有数据库应用系统在现有计算机软件中占有很大计算机软件中占有很大的比例的比例 l本章将着重介绍一种有本章将着重介绍一种有

2、效的效的Web数据库访问方数据库访问方案,即利用案,即利用ASP服务器服务器端的组件端的组件ActiveX Data Objects(ADO)实现对)实现对数据库的操作数据库的操作 6.1 Web6.1 Web数据库访问技术数据库访问技术6.1.1 6.1.1 概述概述lWeb数据库系统不能仅依赖某个数据库系统不能仅依赖某个DBMS来实现整个应用来实现整个应用系统,它是通过其他系统,它是通过其他Web应用程序,用标准的应用程序,用标准的HTML语语言及其某些特定的扩展功能开发的、以特殊形式访问数言及其某些特定的扩展功能开发的、以特殊形式访问数据库的应用程序系统据库的应用程序系统lWeb应用系统

3、一般采用应用系统一般采用Browser/WebServer/ApplicationServer模式实现模式实现lWeb访问数据库的关键是与数据库服务器间的接口访问数据库的关键是与数据库服务器间的接口6.1.2 CGI6.1.2 CGIlCGI(Common Gateway Interface,公关网关接口),公关网关接口)是一种接口标准,它使静态的是一种接口标准,它使静态的Web页变为交互式的媒体页变为交互式的媒体成为可能成为可能图6-1 通过CGI访问Web数据库模型6.1.3 ODBC6.1.3 ODBC lODBC(Open Database Connectivity,开放式数据,开放式

4、数据库连接)是一个数据库编程接口,由微软公司建议并开库连接)是一个数据库编程接口,由微软公司建议并开发发 图6-2 ODBC应用系统模型 6.1.4 JDBC6.1.4 JDBClJDBC是较早的是较早的Web开发平台,在开发平台,在Web应用中,嵌于网应用中,嵌于网页(页(HTML文件)中的文件)中的Java applets利用利用JDBC来访问来访问数据库数据库 图6-3 采用JDBC技术实现Web数据库访问模型 6.1.5 ADO6.1.5 ADOlADO(ActiveX Data Objects)是微软公司)是微软公司Web服务服务器端的内置组件,器端的内置组件,ADO允许程序员在编写

5、程序时,通允许程序员在编写程序时,通过一个过一个OLEDB(数据库对象链接嵌入技术)提供者,(数据库对象链接嵌入技术)提供者,如如Microsoft SQL Server,Microsoft Access系统等,系统等,访问并操纵数据库服务器中的数据访问并操纵数据库服务器中的数据 图6-4 采用ADO技术实现Web数据库访问模型6.2 ODBC6.2 ODBC接口接口l6.2.1 ODBC6.2.1 ODBC接口概述接口概述lODBC是微软公司建议并开发的数据库是微软公司建议并开发的数据库API标准,标准,ODBC为异种数据库提供了统一的访问接口,它使为异种数据库提供了统一的访问接口,它使应用

6、程序能用结构化的查询语言应用程序能用结构化的查询语言SQL访问数据库,访问数据库,从而对操作数据库的应用程序屏蔽了不同数据库管从而对操作数据库的应用程序屏蔽了不同数据库管理系统的访问差异,也使数据库系统的开发不仅仅理系统的访问差异,也使数据库系统的开发不仅仅局限于某个局限于某个DBMS lODBC主要定义如下主要定义如下5方面的内容方面的内容:1.ODBC函数库,它为应用程序提供连接函数库,它为应用程序提供连接DBMS、执、执行行SQL语句、提取访问结果的程序接口语句、提取访问结果的程序接口2.SQL语法,它遵循语法,它遵循X/Open and SQL Access Group Call Le

7、vel Interface Specification标准标准3.错误代码错误代码4.连接、登录连接、登录DBMS5.数据类型数据类型6.2.2 ODBC6.2.2 ODBC的应用的应用l一个一个ODBC应用的建立应涵盖以下主要内容应用的建立应涵盖以下主要内容:1.建立需要操作数据库的应用程序,该程序通过调用建立需要操作数据库的应用程序,该程序通过调用ODBC函数提交函数提交SQL语句语句2.提供运行环境,该环境应包含数据库驱动程序,它提供运行环境,该环境应包含数据库驱动程序,它负责处理负责处理ODBC函数调用,向数据源提交函数调用,向数据源提交SQL请求,请求,向应用程序返回结果,必要时将向

8、应用程序返回结果,必要时将SQL语法翻译成符语法翻译成符合合DBMS语法规定的格式语法规定的格式3.具有由用户数据库、具有由用户数据库、DBMS等构成的可供应用程序等构成的可供应用程序访问的数据源访问的数据源 l通过通过ODBC访问数据库的基本步骤如下:访问数据库的基本步骤如下:创立并配置数据源;创立并配置数据源;建立一个与数据源的对话连接;建立一个与数据源的对话连接;向数据源发出向数据源发出SQL请求;请求;定义一个缓冲区和数据格式用于存储访问结果;定义一个缓冲区和数据格式用于存储访问结果;提取结果;提取结果;处理各种错误;处理各种错误;向用户报告结果;向用户报告结果;关闭与数据源的连接关闭

9、与数据源的连接 6.2.3 6.2.3 创建并配置数据源创建并配置数据源l用户可通过如下两种方式创建或配置数据源:用户可通过如下两种方式创建或配置数据源:ODBC数数据源管理程序或系统函数调用据源管理程序或系统函数调用l配置一个配置一个Access数据源的过程如下:数据源的过程如下:l在在Windows系统下进入控制面板,打开系统下进入控制面板,打开ODBC数据源,若是数据源,若是Windows 2000平台,则打开管理程序下的数据源平台,则打开管理程序下的数据源ODBC,屏幕上,屏幕上将出现如图将出现如图6-5所示的所示的“ODBC数据源管理器数据源管理器”对话框对话框图6-5 “ODBC数

10、据源管理器”对话框l选择所使用的数据库驱动程序,如选择选择所使用的数据库驱动程序,如选择Microsoft Access Driver (*.mdb),单击,单击“完成完成”按钮,出现如按钮,出现如图图6-7所示的对话框所示的对话框图6-7 “ODBC Microsoft Access安装”对话框 l选择选择“系统系统DSN”标签,即选择标签,即选择“系统数据源系统数据源”。要使。要使系统上的所有应用程序都可以使用它,必须选用系统系统上的所有应用程序都可以使用它,必须选用系统DSN,这是建立,这是建立Web站点的需要。站点的需要。l单击单击“添加添加”按钮,进入按钮,进入“创建新数据源创建新数

11、据源”对话框,如对话框,如图图6-6所示所示图6-6 “创建新数据源”对话框l在在“数据源名数据源名”输入框中键入数据源名,单击输入框中键入数据源名,单击“选择选择”按钮为该数据源指定一个已创建好的按钮为该数据源指定一个已创建好的Access数据库(数据库(*.mdb),该数据库应该是在),该数据库应该是在Web应用程序中即将访问的数据库。单击应用程序中即将访问的数据库。单击“确确定定”按钮,回到图按钮,回到图6-6“创建新数据源创建新数据源”对话框。对话框。单击单击“确定确定”按钮直到关闭按钮直到关闭ODBC数据管理器,数据管理器,此时完成一个数据源的建立过程。若要修改该此时完成一个数据源的

12、建立过程。若要修改该数据源的配置,可在图数据源的配置,可在图6-5“ODBC数据源管理数据源管理器器”对话框中选定要更改的数据源,再单击对话框中选定要更改的数据源,再单击“配置配置”按钮按钮 6.3 6.3 数据库语言数据库语言SQLSQL6.3.1 SQL概述概述lSQL(Structured Query Language,结构化查询语言)是一个,结构化查询语言)是一个被广泛采用、适用于关系数据库访问的数据库语言工业标准。它被广泛采用、适用于关系数据库访问的数据库语言工业标准。它包括数据定义、数据操纵、数据查询和数据控制等语句标准。包括数据定义、数据操纵、数据查询和数据控制等语句标准。lSQ

13、L具有以下具有以下4部分功能:部分功能:数据定义数据定义用于定义数据模式。用于定义数据模式。数据查询数据查询用于从数据库中检索数据。用于从数据库中检索数据。数据操纵数据操纵用于对数据库数据进行增加、删除、用于对数据库数据进行增加、删除、 修改等操作。修改等操作。数据控制数据控制用于控制数据库用户的访问权限用于控制数据库用户的访问权限 6.3.2 主要的主要的SQL语句语句1.查询语句查询语句SELECTlSELECT是是SQL的核心语句,它功能强大,的核心语句,它功能强大,和各类和各类SQL子句结合可完成多种复杂的查子句结合可完成多种复杂的查询操作。其语法格式如下:询操作。其语法格式如下: S

14、ELECT ALL | DISTINCT fields_list INTO new_tablename FROM table_names WHEREGROUP BYHAVINGORDER BY2.插入数据语句插入数据语句INSERT lINSERT可添加一个或多个记录到一个表中。可添加一个或多个记录到一个表中。INSERT有两种有两种语法形式:语法形式:INSERT INTO target IN externaldatabase (fields_list)DEFAULT VALUES|VALUES(DEFAULT|expression_list)INSERT INTO target IN ex

15、ternaldatabase fields_listSELECT|EXECUTE3.删除数据语句删除数据语句DELETElDELETE用于从一个或多个表中删除记录。其语法格式如下:用于从一个或多个表中删除记录。其语法格式如下:DELETE FROM table_namesWHERE4.更新数据语句更新数据语句UPDATE lUPDATE语句用于更新表中的记录。其语语句用于更新表中的记录。其语法格式如下:法格式如下:UPDATE table_nameSET Field_1=expression_1,Field_2=expression_2,FROM table1_name|view1_name,

16、table2_name|view2_name,WHERE 6.4 使用ADO访问数据库6.4.1 6.4.1 概述概述lADO(ActiveX Data Objects,ActiveX数据数据对象)技术是一种良好的对象)技术是一种良好的Web数据库访问解决数据库访问解决方案方案lADO是一个是一个ASP内置的服务器组件,它是一座内置的服务器组件,它是一座连接连接Web应用程序和应用程序和OLEDB的桥梁的桥梁lADO几乎兼容所有的数据库系统几乎兼容所有的数据库系统lADO支持多种程序设计语言支持多种程序设计语言6.4.2 ADO6.4.2 ADO的对象类和对象模型的对象类和对象模型lADO技术

17、是通过技术是通过ADO对象的属性、方法来完成相应对象的属性、方法来完成相应的数据库访问的。的数据库访问的。ADO共有以下共有以下7种独立对象类种独立对象类I.Connection连接对象,表示与数据源的连接连接对象,表示与数据源的连接关系关系II.Command命令对象,用于定义一些特定的命令对象,用于定义一些特定的命令语法,以执行相应的动作命令语法,以执行相应的动作III.RecordSet记录集对象,用于表示来自数据记录集对象,用于表示来自数据库表或命令执行结果的记录库表或命令执行结果的记录IV.Property属性对象,用于描述对象的属性,属性对象,用于描述对象的属性,每个每个ADO对象

18、都有一组惟一的属性来描述或控制对象都有一组惟一的属性来描述或控制对象的行为对象的行为lError错误对象,用于描述错误对象,用于描述Connection对象在连接对象在连接数据库时发生的错误数据库时发生的错误lField域(字段)对象,用来表示域(字段)对象,用来表示RecordSet对象对象的字段,一个记录行包含一个或多个域(字段)的字段,一个记录行包含一个或多个域(字段)lParameter参数对象,用来描述参数对象,用来描述Command对象的对象的命令参数,是命令所需要的变量部分命令参数,是命令所需要的变量部分图6-8 ADO对象模型6.4.3 ADO6.4.3 ADO样例样例l【例【

19、例6-10】 以下是一个视频网站中某个以下是一个视频网站中某个页面的源代码(页面的源代码(ch6-10.asp),它完成),它完成在页面上列出数据库表中所有电影的名称、在页面上列出数据库表中所有电影的名称、影片级别及主要演员的功能。存放这些电影片级别及主要演员的功能。存放这些电影信息的数据库表名为影信息的数据库表名为films 点击查看程序点击查看程序6.5 6.5 用用ConnectionConnection对象连接数据库对象连接数据库6.5.1 Connection6.5.1 Connection对象的常用属性和方法对象的常用属性和方法lConnection对象的常用属性:对象的常用属性:

20、Mode用于设置数据的可用权限,其属性用于设置数据的可用权限,其属性 值是系统定义的一些常量,只值是系统定义的一些常量,只能在关闭能在关闭Connection对象时设置。对象时设置。State指明指明Connection对象的当前状态,对象的当前状态, 包括关闭、打开、正在连接、正在包括关闭、打开、正在连接、正在执执 行命令等。行命令等。ConnectionTimeout设置对象建立连接操作失败时的等设置对象建立连接操作失败时的等 待时间。待时间。DefaultDatabase设置连接数据源的默认数据库。设置连接数据源的默认数据库。ConnectionString设置连接数据源的一些信息设置连

21、接数据源的一些信息 lConnection对象的常用方法:对象的常用方法:Open 用于建立到数据源的物理连接。用于建立到数据源的物理连接。Execute 用于执行指定的查询、用于执行指定的查询、SQL语句、存储过程语句、存储过程 或特定的文本。或特定的文本。Cancel 用于取消用异步方式执行的用于取消用异步方式执行的Execute或或 Open方法的调用。方法的调用。Close用于关闭一个连接。在对用于关闭一个连接。在对Connection对象对象 操作结束时,使用操作结束时,使用Close方法释放所有与之关方法释放所有与之关 联的系统资源联的系统资源6.5.2 6.5.2 打开和关闭数据

22、库连接打开和关闭数据库连接1.打开打开Connection对象对象l打开打开Connection对象的对象的Open方法的语法格式如下:方法的语法格式如下: Open (ConnectionString, UserID, Password , Options )2.关闭关闭Connection对象对象l关闭关闭Connection对象的对象的Close方法的语法格式如方法的语法格式如下:下:对象实例名.Close【例【例6-11】 以下是一段使用连接对象的代码,可以反映以下是一段使用连接对象的代码,可以反映连接对象应用的基本步骤连接对象应用的基本步骤 查看程序查看程序6.5.3 6.5.3 通

23、过通过ConnectionConnection对象执行对象执行SQLSQL语句语句l打开打开Connection对象后,可以通过对象的对象后,可以通过对象的Execute方法实现方法实现SQL语句的执行过程。语句的执行过程。lExecute方法的语法格式如下:方法的语法格式如下:Execute (CommandText , RecordsAffected , Option)【例【例6-12】 下列代码从数据库表下列代码从数据库表sales中检索出所有记录中检索出所有记录并返回记录数。并返回记录数。 点击查看程序6.5.4 Connection6.5.4 Connection对象的事务处理对象的

24、事务处理l【例【例6-14】 本例是进行事务处理的一段代码本例是进行事务处理的一段代码 6.6 6.6 用用CommandCommand对象执行数据库操作对象执行数据库操作6.6.1 Command6.6.1 Command对象的常用属性和方法对象的常用属性和方法执行执行SQL语句可以用打开的语句可以用打开的Connection对象,也可以对象,也可以用用ADO的的Command(命令)对象达到同样的目的。(命令)对象达到同样的目的。Command对象的常用属性和方法如下:对象的常用属性和方法如下:ActiveConnection属性指定与Command对象关联的已打开 的连接 对象。Name

25、属性指定Command对象的名字。CommandText属性定义一个可执行的命令串。CommandType属性指定命令的类型。Execute方法执行命令6.6.2 6.6.2 用用CommandCommand对象执行对象执行SQLSQL语句语句l【例【例6-16】 用用Command对象的对象的Execute方法从方法从sales表中检索出所有记录。源程序如下表中检索出所有记录。源程序如下: 6.6.3 用Command对象调用存储过程 l在在Web数据库程序设计中使用数据库程序设计中使用SQL存储过程有存储过程有下列好处:下列好处:a.执行执行SQL存储过程比执行存储过程比执行SQL命令快得

26、多。当一个命令快得多。当一个SQL语句包含在存储过程中时,服务器不必每次执行语句包含在存储过程中时,服务器不必每次执行它时都要分析和编译它。它时都要分析和编译它。b.在多个网页中可以调用同一个存储过程,使站点易于在多个网页中可以调用同一个存储过程,使站点易于维护。维护。c.一个存储过程可以包含多个一个存储过程可以包含多个SQL语句,这意味着可用语句,这意味着可用存储过程建立复杂的查询。存储过程建立复杂的查询。d.存储过程可以接收和返回参数,这是实现复杂数据库存储过程可以接收和返回参数,这是实现复杂数据库访问功能的必要基础访问功能的必要基础。 1.存储过程的调用形式存储过程的调用形式 l存储过程

27、的调用也是一个存储过程的调用也是一个Command对象的执行过程对象的执行过程【例6-17】 实现对存储过程实现对存储过程HitCount的调用。源程序如的调用。源程序如下:下: 2.用用Parameter对象实现存储过程的参数传递对象实现存储过程的参数传递lParameter对象代表基于参数化查询或与存储过程对象代表基于参数化查询或与存储过程的的Command对象相关联的输入、输出参数及存储对象相关联的输入、输出参数及存储过程的返回值。用过程的返回值。用Command对象的对象的CreateParameter方法可以建立一个参数对象,其方法可以建立一个参数对象,其语法格式如下:语法格式如下:

28、CreateParameter( Name,Type,Direction,Size,Value)【例【例6-18】 利用对一个存储过程利用对一个存储过程LoginCheck的调用,验的调用,验证登录用户的合法性证登录用户的合法性点击查看源程序6.7 6.7 用用RecordSetRecordSet对象控制数据对象控制数据6.7.1 RecordSet6.7.1 RecordSet对象简介对象简介nRecordSet对象可以实现以下功能:对象可以实现以下功能:l指定可以检查的记录。指定可以检查的记录。l移动记录。移动记录。l添加、更改和删除记录。添加、更改和删除记录。l通过更改记录更新数据源。通

29、过更改记录更新数据源。l管理管理RecordSet的总体状态的总体状态 6.7.2 RecordSet6.7.2 RecordSet对象的创建和数据读取对象的创建和数据读取1.RecordSet对象的创建对象的创建l使用使用Server.CreateObject(“ADODB. RecordSet”)创建创建RecordSet对象,然后通过打开对象,然后通过打开RecordSet对对象创建一个与某个数据库表相关联的象创建一个与某个数据库表相关联的RecordSet对对象实例象实例l可以采用可以采用Connection和和Command对象的对象的Execute方法,当用方法,当用Execute

30、方法从一个数据库返方法从一个数据库返回查询结果时,将自动创建一个回查询结果时,将自动创建一个RecordSet对象对象 2.RecordSet对象数据的读取对象数据的读取l【例【例6-19】 在在Web页面上显示表页面上显示表sales的所有记录数的所有记录数据,读取字段值时利用字段顺序号。源程序如下据,读取字段值时利用字段顺序号。源程序如下 Show Table sales (点击看全部点击看全部)6.7.3 6.7.3 记录集记录间的移动方法和记录集游标记录集记录间的移动方法和记录集游标l移动方法包括移动方法包括:MoveNumRecords在记录集中向前或向后移动指在记录集中向前或向后移

31、动指 定条记录定条记录MoveFirst移动至记录集中的第一条记录移动至记录集中的第一条记录MoveLast移动至记录集中的最后一条记移动至记录集中的最后一条记 录录MovePrevious移动至当前记录的上一条记录移动至当前记录的上一条记录MoveNext移动至当前记录的下一条记录移动至当前记录的下一条记录 l游标的类型有以下游标的类型有以下4种种 :adOpenFowardOnly 前向游标,只能在记录集中向前移前向游标,只能在记录集中向前移 动。动。adOpenKeyset可在记录集中向前或向后移动。可在记录集中向前或向后移动。 若若 另一用户删除或改变一条记录,记另一用户删除或改变一条

32、记录,记录录 集将反映这种变化,但若增加一条集将反映这种变化,但若增加一条新新 记录,新记录不会出现在记录集中。记录,新记录不会出现在记录集中。adOpenDynamic可在记录集中向前或向后移动。可在记录集中向前或向后移动。 其其 他用户造成的任何改变都会动态反他用户造成的任何改变都会动态反映映 在记录集中。在记录集中。adOpenStatic可在记录集中向前或向后移动。不可在记录集中向前或向后移动。不 在记录集中反映其他用户对记录集在记录集中反映其他用户对记录集造造 成的任何改变成的任何改变 l【例【例6-20】 在在Web页中列出数据库表页中列出数据库表sales的的GoodsName域

33、,要域,要求显示顺序从最后一条记录开始直至第一条记录为止求显示顺序从最后一条记录开始直至第一条记录为止 BackWard %Set Conn=Server.CreateObject (ADODB.Connection)Set RS=Server.CreateObject (ADODB.RecordSet)Conn.Open MyData打开记录集时,将指定游标的类型为打开记录集时,将指定游标的类型为adOpenStatic,可在记录集,可在记录集中前向或后向移动中前向或后向移动RS.Open SELECT * FROM sales,Conn,adOpenstatic.(点击查看全部点击查看全部

34、)6.7.4 记录集记录的修改和记录锁定 l使用使用RecordSet对象的一组方法对记录集中对象的一组方法对记录集中的记录进行增、删、改操作的记录进行增、删、改操作 1.AddNew Fields,Values方法方法 2.Delete AffectRecords方法方法 3.Update Fields,Values方法方法 4.CancelUpdate方法方法 5.UpdateBatch方法方法 6.CancelBatch方法方法 l【例【例6-21】 在数据库表在数据库表sales中插入一条新记录中插入一条新记录 Insert a Record %Set Conn=Server.CreateObject ( ADODB.Connection)Set RS=Server.CreateObject ( ADO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论