117
12 12 SQL Server SQL Server 第第第第第第 第第第第第第

第 12 章  SQL Server 应用程序开发

  • Upload
    herbst

  • View
    225

  • Download
    3

Embed Size (px)

DESCRIPTION

第 12 章  SQL Server 应用程序开发. 12.1 使用 Access 开发 SQL Server 应用程序. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 12 章  SQL Server 应用程序开发

第第 1212 章 章 SQL ServerSQL Server 应用程序开应用程序开

发发

Page 2: 第 12 章  SQL Server 应用程序开发

12.112.1 使用使用 AccessAccess 开发开发SQL ServerSQL Server 应用程序应用程序

在在 Access 2000Access 2000 或更高版本中,可以使用或更高版本中,可以使用 AccessAccess项目对项目对 SQL ServerSQL Server 数据库高效、方便的访问。数据库高效、方便的访问。使用使用 AccessAccess 项目可以轻松地创建客户项目可以轻松地创建客户 // 服务器应服务器应用程序。操作用程序。操作 AccessAccess 项目与操作项目与操作 AccessAccess 数据库数据库非常相似。除了要连接到非常相似。除了要连接到 SQL ServerSQL Server 数据库外,数据库外,在在 AccessAccess 项目中创建和应用窗体、报表、数据项目中创建和应用窗体、报表、数据访问页、宏和模块的方法,与在访问页、宏和模块的方法,与在 AccessAccess 数据库数据库中所用的方法是相同的。下面以中所用的方法是相同的。下面以 Access 2000Access 2000 为为例来介绍如何使用例来介绍如何使用 AccessAccess 来开发来开发 SQL ServerSQL Server 应应用程序。用程序。

Page 3: 第 12 章  SQL Server 应用程序开发

12.1.112.1.1 创建创建 AccessAccess 项目 项目 AccessAccess 项目是一种项目是一种 AccessAccess 数据文件,它能通数据文件,它能通

过过 OLE DBOLE DB 组件结构有效地以本地模式访问组件结构有效地以本地模式访问 SSQL ServerQL Server 数据库。数据库。 OLE DBOLE DB 是一种组件数据是一种组件数据库体系,它对多种类型数据源实现有效的网络库体系,它对多种类型数据源实现有效的网络和和 InternetInternet 访问。使用访问。使用 AccessAccess 项目可以轻松项目可以轻松地创建一个客户地创建一个客户 // 服务器应用程序,既可以是服务器应用程序,既可以是基于窗体、报表的传统解决方案,也可以是通基于窗体、报表的传统解决方案,也可以是通过数据访问页实现的基于过数据访问页实现的基于 WebWeb 的解决方案,的解决方案,或是两者的结合。或是两者的结合。

Page 4: 第 12 章  SQL Server 应用程序开发

12.1.112.1.1 创建创建 AccessAccess 项目项目 AccessAccess 项目中只包含基于代码或基于项目中只包含基于代码或基于 HTMLHTML 的的

数据库对象:窗体、报表、数据访问页的名称数据库对象:窗体、报表、数据访问页的名称及位置、宏和模块,这些都是用于创建应用程及位置、宏和模块,这些都是用于创建应用程序的数据库对象。与序的数据库对象。与 AccessAccess 数据库区别在于,数据库区别在于,AccessAccess 项目不包含任何基于对象的数据或数据项目不包含任何基于对象的数据或数据定义:表、视图、数据库图表、存储过程或用定义:表、视图、数据库图表、存储过程或用户定义函数,这些数据库对象存储在户定义函数,这些数据库对象存储在 SQL ServSQL Serverer 数据库中,通过数据库中,通过 OLE DBOLE DB 可以将它们与可以将它们与 AcceAccessss 项目连接起来。项目连接起来。

在在 Access 2002Access 2002 中,可以创建一个中,可以创建一个 AccessAccess 项目项目并将它与并将它与 SQL ServerSQL Server 数据库连接。通常有以下数据库连接。通常有以下三种情况。三种情况。

Page 5: 第 12 章  SQL Server 应用程序开发

1.1. 创建创建 AccessAccess 项目并将其与现有 项目并将其与现有 SQL ServerSQL Server 数据库连接数据库连接

启动启动 Access 2002Access 2002 ,然后从“文件”选单中选择,然后从“文件”选单中选择“新建”命令。“新建”命令。

在“新建文件”任务窗格中,单击“项目(现有在“新建文件”任务窗格中,单击“项目(现有数据)”,在 “文件新建数据库”对话框中,单数据)”,在 “文件新建数据库”对话框中,单击“保存位置”框中的一个地址,并在“文件击“保存位置”框中的一个地址,并在“文件名”框中键入项目文件名,确保“名”框中键入项目文件名,确保“ Microsoft AcMicrosoft Accesscess 项目”出现在“保存类型”框中,之后,单项目”出现在“保存类型”框中,之后,单击“创建”按钮。击“创建”按钮。

当出现 “数据链接属性”对话框时,选择“连当出现 “数据链接属性”对话框时,选择“连接”选项卡,然后选择或输入要登录的服务器名接”选项卡,然后选择或输入要登录的服务器名称。称。

Page 6: 第 12 章  SQL Server 应用程序开发

提供登录到服务器上所需的信息,为此应执行下提供登录到服务器上所需的信息,为此应执行下列操作之一:列操作之一:

若要使用若要使用 WindowsWindows 账户登录到账户登录到 SQL ServerSQL Server 服服务器,请单击“使用务器,请单击“使用 Windows NTWindows NT 集成安全设集成安全设置”选项。置”选项。

若要使用指定的登录若要使用指定的登录 IDID 和密码登录到和密码登录到 SQL ServSQL Serverer 服务器,请单击“使用指定的用户名称和密服务器,请单击“使用指定的用户名称和密码”选项,并输入相应的用户名称和密码。码”选项,并输入相应的用户名称和密码。

选中“在服务器上选择数据库”选项,然后在该选中“在服务器上选择数据库”选项,然后在该选项下面的下拉式列表中选择要连接的选项下面的下拉式列表中选择要连接的 SQL ServSQL Serverer 数据库(如示例数据库数据库(如示例数据库 NorthwindNorthwind )。)。

Page 7: 第 12 章  SQL Server 应用程序开发

单击“确定”按钮,完成到指定数据库的连接,单击“确定”按钮,完成到指定数据库的连接,此时该数据库中包含的各个对象将显示在“项此时该数据库中包含的各个对象将显示在“项目”窗口中,如图目”窗口中,如图 12.412.4 所示。所示。

Page 8: 第 12 章  SQL Server 应用程序开发

22 创建创建 SQL ServerSQL Server 数据库并将其数据库并将其与与 AccessAccess 项目连接项目连接步骤步骤

从“文件”选单中选择“新建”命令。从“文件”选单中选择“新建”命令。 在“新建文件”窗格中,单击“项目(新在“新建文件”窗格中,单击“项目(新

数据)”,数据)”, 在“文件新建数据库”对话框中,单击在“文件新建数据库”对话框中,单击

“保存位置”框中的一个地址,并在“文“保存位置”框中的一个地址,并在“文件名”框中键入一个名称,然后单击“创件名”框中键入一个名称,然后单击“创建”按钮。建”按钮。

Page 9: 第 12 章  SQL Server 应用程序开发

在如图在如图 12.612.6 所示的“所示的“ Microsoft SQL SeMicrosoft SQL Serverrver 数据库向导”对话框中,键入要使用数据库向导”对话框中,键入要使用的服务器的名称、在服务器上具有的服务器的名称、在服务器上具有 CREACREATE DATABASETE DATABASE 权限的账户的登录权限的账户的登录 IDID 和和密码以及新密码以及新 SQL ServerSQL Server 数据库的名称,数据库的名称,然后单击“下一步”按钮。然后单击“下一步”按钮。

Page 10: 第 12 章  SQL Server 应用程序开发

注意注意   如果正在创建一个  如果正在创建一个 SQL Server 6.5SQL Server 6.5 数数

据库,请输入数据库设备和大小、事务处据库,请输入数据库设备和大小、事务处理日志设备和大小、数据库的大小和日志理日志设备和大小、数据库的大小和日志的大小。无需为的大小。无需为 SQL Server 7.0SQL Server 7.0 或更高版或更高版本指定设备和大小。在本指定设备和大小。在 Access 2000Access 2000 中,中,可以使用可以使用 Microsoft SQL ServerMicrosoft SQL Server 数据库向数据库向导创建导创建 SQL Server 6.5SQL Server 6.5 或或 SQL Server 7.0 SQL Server 7.0 数据库。若要数据库。若要 Microsoft SQL ServerMicrosoft SQL Server 数据数据库向导创建库向导创建 SQL Server 2000 SQL Server 2000 数据库,则数据库,则应使用应使用 Access 2002Access 2002 。。

Page 11: 第 12 章  SQL Server 应用程序开发

在如图在如图 12.712.7 所示的对话框中,单击“完所示的对话框中,单击“完成”按钮。 成”按钮。

Page 12: 第 12 章  SQL Server 应用程序开发

33 创建不与创建不与 SQL ServerSQL Server 数据库数据库连接的连接的 AccessAccess 项目项目 步骤步骤

从“文件”选单中选择“新建”命令。从“文件”选单中选择“新建”命令。 在“新建文件”任务窗格中的“新建”下,单击“项在“新建文件”任务窗格中的“新建”下,单击“项

目(现有数据)”。目(现有数据)”。 在“文件新建数据库”对话框中,单击“保存位置”在“文件新建数据库”对话框中,单击“保存位置”

框中的一个地址,然后在“文件名”框中键入文件名框中的一个地址,然后在“文件名”框中键入文件名 ;;确保“确保“ Microsoft AccessMicrosoft Access 项目”出现在“保存类型”项目”出现在“保存类型”框中,然后单击“创建”按钮。框中,然后单击“创建”按钮。

当出现“数据链接属性”对话框时,单击“取消”按当出现“数据链接属性”对话框时,单击“取消”按钮。钮。

如果以后想将该项目与指定的如果以后想将该项目与指定的 SQL ServerSQL Server 数据库连数据库连接起来,请在“文件”选单中选择“连接”命令,然接起来,请在“文件”选单中选择“连接”命令,然后设置所需的连接信息。后设置所需的连接信息。

Page 13: 第 12 章  SQL Server 应用程序开发

12.1.212.1.2 打开打开 AccessAccess 项目 项目 步骤步骤 (1)(1) 在“文件”选单中选择“打开”命令。在“文件”选单中选择“打开”命令。 (2)(2) 单击“打开”对话框左侧的快捷方式,或者在单击“打开”对话框左侧的快捷方式,或者在

“查找范围”框中单击包含要打开的“查找范围”框中单击包含要打开的 AccessAccess 项目的项目的驱动器或文件夹。驱动器或文件夹。

若要查看以前打开过的若要查看以前打开过的 AccessAccess 项目的快捷方式列表,项目的快捷方式列表,请单击“打开”对话框左侧的“历史”。请单击“打开”对话框左侧的“历史”。

(3)(3) 在文件夹列表中双击文件夹,直到打开包含在文件夹列表中双击文件夹,直到打开包含 AccAccessess 项目的文件夹。项目的文件夹。

如果找不到想要打开的如果找不到想要打开的 AccessAccess 对象,请单击“打对象,请单击“打开”对话框右上角的“工具”,然后单击“查找”,开”对话框右上角的“工具”,然后单击“查找”,并在“查找”对话框中输入搜索条件。并在“查找”对话框中输入搜索条件。

Page 14: 第 12 章  SQL Server 应用程序开发

(( 44 )单击打开的)单击打开的 AccessAccess 项目文件,然后执行下列项目文件,然后执行下列操作之一:操作之一:

若要打开若要打开 AccessAccess 项目,请单击“打开”按钮。项目,请单击“打开”按钮。 若要以只读访问方式打开若要以只读访问方式打开 AccessAccess 项目,请单击“打项目,请单击“打

开”箭头,然后选择“以只读方式打开”命令。开”箭头,然后选择“以只读方式打开”命令。  在 在 Access 2002Access 2002 中,可以只以独占模式打开中,可以只以独占模式打开 AccesAcces

ss 项目。如果试图打开一个其他用户已经打开的项目。如果试图打开一个其他用户已经打开的 AcceAccessss 项目,则项目,则 AccessAccess会提示用户打开了该文件的一个会提示用户打开了该文件的一个只读副本。只读副本。

 需要说明的是,当以只读模式打开 需要说明的是,当以只读模式打开 AccessAccess 项目时,项目时,仍然可以添加或修改数据,创建或修改表、视图、数仍然可以添加或修改数据,创建或修改表、视图、数据库图表或存储过程,因为数据和这些对象是驻留在据库图表或存储过程,因为数据和这些对象是驻留在SQL ServerSQL Server 数据库中。然而,不能创建或修改窗体、数据库中。然而,不能创建或修改窗体、报表、宏或模块,因为这些对象是驻留在报表、宏或模块,因为这些对象是驻留在 AccessAccess 项项目中的。目中的。

Page 15: 第 12 章  SQL Server 应用程序开发

12.1.312.1.3  连接到 连接到 SQL ServerSQL Server 数数据库据库

下面介绍将下面介绍将 AccessAccess 项目连接到项目连接到 SQL ServerSQL Server 数据数据库,或者更改库,或者更改 AccessAccess 项目与项目与 SQL ServerSQL Server 数据库数据库的连接方法。的连接方法。

在在 Access 2002Access 2002 在,打开要连接到在,打开要连接到 SQL ServerSQL Server数据库的数据库的 AccessAccess 项目。项目。

(1)(1) 从“文件”选单中选择“连接”命令。从“文件”选单中选择“连接”命令。 (2)(2) 在如图在如图 12.812.8 所示的“数据链接属性”对话框所示的“数据链接属性”对话框

中,选择“连接”选项卡。中,选择“连接”选项卡。 从下拉列表中选择一个服务器名,或键入想要访从下拉列表中选择一个服务器名,或键入想要访

问数据库所在的服务器位置。单击“刷新”按钮,问数据库所在的服务器位置。单击“刷新”按钮,可以刷新服务器列表。可以刷新服务器列表。

Page 16: 第 12 章  SQL Server 应用程序开发

下面介绍将下面介绍将 AccessAccess 项目连接到项目连接到 SQL ServeSQL Serverr 数据库,或者更改数据库,或者更改 AccessAccess 项目与项目与 SQL SSQL Servererver 数据库的连接方法。数据库的连接方法。

在在 Access 2002Access 2002 在,打开要连接到在,打开要连接到 SQL SeSQL Serverrver 数据库的数据库的 AccessAccess 项目。项目。

(1)(1) 从“文件”选单中选择“连接”命令。从“文件”选单中选择“连接”命令。 (2)(2) 在 “数据链接属性”对话框中,选择在 “数据链接属性”对话框中,选择

“连接”选项卡。“连接”选项卡。 (3)(3) 从下拉列表中选择一个服务器名,或键从下拉列表中选择一个服务器名,或键

入想要访问数据库所在的服务器位置。单入想要访问数据库所在的服务器位置。单击“刷新”按钮,可以刷新服务器列表。击“刷新”按钮,可以刷新服务器列表。

Page 17: 第 12 章  SQL Server 应用程序开发

(4)(4) 输入登录到服务器所需的信息,可以输入登录到服务器所需的信息,可以使用使用 Windows NTWindows NT 集成安全机制,也可集成安全机制,也可以使用指定的用户名和密码。以使用指定的用户名和密码。

(5)(5) 从所选服务器上,选择要连接的从所选服务器上,选择要连接的 SQL SQL ServerServer 数据库。数据库。

若要测试所做的设置是否正确,请单击若要测试所做的设置是否正确,请单击“测试连接”按钮。此时,将尝试连接到“测试连接”按钮。此时,将尝试连接到指定的指定的 SQL ServerSQL Server 数据库。如果连接失数据库。如果连接失败,请确保设置是正确的。败,请确保设置是正确的。

(6)(6) 单击“确定”按钮。单击“确定”按钮。

Page 18: 第 12 章  SQL Server 应用程序开发

12.1.412.1.4  使用数据库表 使用数据库表

在在 Access 2002Access 2002 中,既可以创建一个中,既可以创建一个 AccessAccess 项项目并将其与现有目并将其与现有 SQL ServerSQL Server 数据库连接,也可数据库连接,也可以创建一个以创建一个 SQL ServerSQL Server 数据库并将其与数据库并将其与 AccessAccess项目连接。无论是哪一种情况,只要打开了项目连接。无论是哪一种情况,只要打开了 AcceAccessss 数据库中使用表设计器一样。所不同的是,对数据库中使用表设计器一样。所不同的是,对于于 AccessAccess 项目来说,表存储在项目来说,表存储在 SQL ServerSQL Server 数据数据库中;对于库中;对于 AccessAccess 数据库来说,表即存储在该数据库来说,表即存储在该数据库中。数据库中。

Page 19: 第 12 章  SQL Server 应用程序开发

下面介绍通过下面介绍通过 AccessAccess 项目在项目在 SQL ServerSQL Server 数据库数据库创建表的方法。创建表的方法。

步骤步骤 启动启动 Access 2002Access 2002 ,然后从“文件”选单中选择,然后从“文件”选单中选择

“新建”命令。“新建”命令。 在“新建文件”窗格中,单击“项目(新数据)”。在“新建文件”窗格中,单击“项目(新数据)”。 在“文件新建数据库”对话框中,单击“保存位在“文件新建数据库”对话框中,单击“保存位

置”框中的一个地址,并在“文件名”框中键入一置”框中的一个地址,并在“文件名”框中键入一个名称(例中为个名称(例中为 StudentsStudents ),然后单击“创建”),然后单击“创建”按钮。按钮。

当出现“当出现“ Microsoft SQL ServerMicrosoft SQL Server 数据库向导”对数据库向导”对话框时,键入要使用的服务器的名称、在服务器上话框时,键入要使用的服务器的名称、在服务器上具有具有 CREATE DATABASECREATE DATABASE 权限的账户的登录权限的账户的登录 IDID和密码以及新和密码以及新 SQL ServerSQL Server 数据库的名称(例中为数据库的名称(例中为StudentsSQLStudentsSQL ),然后单击“下一步”按钮),然后单击“下一步”按钮 ..

Page 20: 第 12 章  SQL Server 应用程序开发

在随后出现的对话框中,单击“完成”按钮,在随后出现的对话框中,单击“完成”按钮,以完成以完成 StudentsSQLStudentsSQL 数据库的创建。数据库的创建。

在如图在如图 12.1012.10 所示的项目窗口中,单击对象栏所示的项目窗口中,单击对象栏下方的“表”,然后执行下列操作之一:下方的“表”,然后执行下列操作之一:

Page 21: 第 12 章  SQL Server 应用程序开发

单击项目窗口工具栏上的“新建”按钮。单击项目窗口工具栏上的“新建”按钮。 在项目窗口中双击“使用设计器创建表”。在项目窗口中双击“使用设计器创建表”。 此时出现如图此时出现如图 12.1112.11 所示的表设计器窗口,该窗所示的表设计器窗口,该窗

口与口与 SQL Server 2000SQL Server 2000 的表设计器基本相同。表的表设计器基本相同。表设计器上部网格中的每一行对应表中的一列。设计器上部网格中的每一行对应表中的一列。

Page 22: 第 12 章  SQL Server 应用程序开发

创建表时,需要对表中的每一列进行定义:在上创建表时,需要对表中的每一列进行定义:在上部网格中指定列名称、选择数据类型并键入列说部网格中指定列名称、选择数据类型并键入列说明文本,然后在窗口下部的“列”选项卡中对列明文本,然后在窗口下部的“列”选项卡中对列的各种属性进行设置。的各种属性进行设置。

按照要求,完成按照要求,完成 StudentsStudents 表结构的定义,并将表结构的定义,并将 sstudent_idtudent_id 列设置为表的主键,然后单击工具栏列设置为表的主键,然后单击工具栏中的“保存”按钮。中的“保存”按钮。

当出现如图当出现如图 12.1212.12 所示的“选择名称”对话框时,所示的“选择名称”对话框时,在“输入表名称”框中输入在“输入表名称”框中输入 StudentsStudents ,然后单击,然后单击“确定”按钮。“确定”按钮。

Page 23: 第 12 章  SQL Server 应用程序开发

按照要求,完成按照要求,完成 CoursesCourses 表结构的定义。表结构的定义。 按照要求,完成按照要求,完成 ScoresScores 表结构的定义。表结构的定义。 完成数据库表结构定义后,若要向表中输入数完成数据库表结构定义后,若要向表中输入数

据或查看表中的数据,请单击该表,然后单击据或查看表中的数据,请单击该表,然后单击项目窗口工具栏上的“打开”按钮;若要修改项目窗口工具栏上的“打开”按钮;若要修改表结构,请单击项目窗口工具栏上的“设计”表结构,请单击项目窗口工具栏上的“设计”按钮按钮 ;; 若要删除一个表,请在项目窗口中单击该若要删除一个表,请在项目窗口中单击该表,然后单击项目窗口工具栏上的“删除”按表,然后单击项目窗口工具栏上的“删除”按钮。钮。

Page 24: 第 12 章  SQL Server 应用程序开发

12.1.512.1.5  使用图表 使用图表 为了使数据库可视化,可以创建一个或更多的关为了使数据库可视化,可以创建一个或更多的关

系图,以显示数据库中的部分或全部表、列、键系图,以显示数据库中的部分或全部表、列、键和关系。对于任何数据库都可以创建任意多个数和关系。对于任何数据库都可以创建任意多个数据库关系图据库关系图 ;;每个数据库表可以出现在任意多个每个数据库表可以出现在任意多个关系图上。在关系图上。在 Access 2002Access 2002 中,可以使用图表设中,可以使用图表设计器来创建数据库关系图,该关系图存储在计器来创建数据库关系图,该关系图存储在 SQL SQL ServerServer 数据库中。数据库中。

[[ 例例 12.2] 12.2] 本例说明如何使用图表设计器来创建数本例说明如何使用图表设计器来创建数据库关系图。在据库关系图。在 StudentsStudents 项目中通过项目中通过 stduent_istduent_idd 列在列在 ScoresScores 表之间建立关系,通过表之间建立关系,通过 course_idcourse_id列在列在 ScoresScores 表和表和 CoursesCourses 表之间建立关系。表之间建立关系。

Page 25: 第 12 章  SQL Server 应用程序开发

步骤步骤 (1)(1) 在在 Access 2002Access 2002 中打开项目中打开项目 Students.adpStudents.adp 。。 在如图在如图 12.1312.13 所示的项目窗口中,单击对象栏所示的项目窗口中,单击对象栏

下方的“数据库图表”,然后执行下列操作之下方的“数据库图表”,然后执行下列操作之一: 一:

Page 26: 第 12 章  SQL Server 应用程序开发

(2)(2) 单击项目窗口工具栏上的“新建”按钮。单击项目窗口工具栏上的“新建”按钮。 在项目窗口中双击“使用设计器创建数据库图表”。在项目窗口中双击“使用设计器创建数据库图表”。 (( 33 )当出现如图)当出现如图 12.1412.14 所示的“添加表”对话框时,所示的“添加表”对话框时,

按住按住 CtrlCtrl 键依次单击要添加到数据库图表中的表,键依次单击要添加到数据库图表中的表,然后单击“添加”按钮,再单击“关闭”按钮。在然后单击“添加”按钮,再单击“关闭”按钮。在本例中向图表中添加了三个表,即本例中向图表中添加了三个表,即 StudentsStudents 表、表、 CCoursesourses 表和表和 ScoresScores 表。表。

Page 27: 第 12 章  SQL Server 应用程序开发

(( 44 )表设计器窗口中,用鼠标将)表设计器窗口中,用鼠标将 StudentsStudents 表的表的主键列主键列 student_idstudent_id拖向拖向 ScoresScores 表的表的 student_idstudent_id列上,然后释放鼠标按键。列上,然后释放鼠标按键。

(( 55 )当出现如图)当出现如图 12.1512.15 所示的“创建关系”对所示的“创建关系”对话框时,如果所建关系的各个选项的默认设置符话框时,如果所建关系的各个选项的默认设置符合要求,直接单击“确定”按钮即可合要求,直接单击“确定”按钮即可 ;; 也可以根也可以根据需要更改这些设置,然后单击“确定”按钮。据需要更改这些设置,然后单击“确定”按钮。

Page 28: 第 12 章  SQL Server 应用程序开发

当在表之间建立关系以后,相应的表之间会出现当在表之间建立关系以后,相应的表之间会出现一条关系线,如图一条关系线,如图 12.1612.16 所示。图中线的终结点所示。图中线的终结点表示关系是一对一还是一对多:如果关系在一个表示关系是一对一还是一对多:如果关系在一个终结点有一个键,在另一个终结点有一个∞字形,终结点有一个键,在另一个终结点有一个∞字形,则是一对多关系则是一对多关系 ;; 如果关系在每个终结点都有一如果关系在每个终结点都有一个键,则是一对一关系。个键,则是一对一关系。

Page 29: 第 12 章  SQL Server 应用程序开发

(( 66 )重复步骤()重复步骤( 44 )和()和( 55 ),通过),通过 course_icourse_idd 列在列在 ScoresScores 表和表和 coursescourses 表之间建立关系。表之间建立关系。

(( 77 )单击工具栏上的“保存”按钮,并在“另)单击工具栏上的“保存”按钮,并在“另存为”对话框中指定图表名称,然后关闭数据库存为”对话框中指定图表名称,然后关闭数据库图表设计器窗口。图表设计器窗口。

  创建数据库图表后,若要修改该图表的设置,  创建数据库图表后,若要修改该图表的设置,请单击该图表,然后单击项目窗口工具栏上的请单击该图表,然后单击项目窗口工具栏上的“设计”按钮“设计”按钮 ;; 若要删除该图表,请单击该图表,若要删除该图表,请单击该图表,然后单击项目窗口工具栏上的“删除”按钮。然后单击项目窗口工具栏上的“删除”按钮。

Page 30: 第 12 章  SQL Server 应用程序开发

12.1.612.1.6  使用查询 使用查询 项目中的查询对应于项目中的查询对应于 SQL ServerSQL Server 数据库中的视图,数据库中的视图,

这种数据库对象存储在这种数据库对象存储在 SQL ServerSQL Server 数据库中,可数据库中,可以使用与表相同的方式在以使用与表相同的方式在 SQLSQL查询语句中引用。在查询语句中引用。在Access 2002Access 2002 中,可以使用查询设计器来创建视图。中,可以使用查询设计器来创建视图。

[[ 例例 12.3] 12.3] 本例说明如何使用查询设计器创建视图本例说明如何使用查询设计器创建视图对象。在项目文件对象。在项目文件 Students.adpStudents.adp 中创建一个名为中创建一个名为“学生成绩”的视图,其结果集内的数据分别来自“学生成绩”的视图,其结果集内的数据分别来自StudentsStudents 表、表、 CoursesCourses 表和表和 ScoresScores 表,所显示的表,所显示的输出列包括输出列包括 StudentsStudents 表中的表中的 student_numstudent_num 列、列、 sstudent_nametudent_name 列、列、 CoursesCourses 表中的表中的 course_namcourse_namee 列以及列以及 ScoresScores 表中的表中的 score,score, 要求按要求按 student_nastudent_nameme 列升序排列记录。列升序排列记录。

Page 31: 第 12 章  SQL Server 应用程序开发

步骤步骤 在在 Access 2002Access 2002 中打开项目文件中打开项目文件 Students.Students.

adpadp 。。 在如图在如图 12.1712.17 所示的项目窗口中单击对象所示的项目窗口中单击对象栏下方的“查询”,然后单击项目窗口工栏下方的“查询”,然后单击项目窗口工具栏上的“新建”按钮,或者在项目窗口具栏上的“新建”按钮,或者在项目窗口中双击“使用设计器创建视图”,以打开中双击“使用设计器创建视图”,以打开查询设计器窗口。查询设计器窗口。

Page 32: 第 12 章  SQL Server 应用程序开发

向视图中添加所需表。当出现“添加表”对话框向视图中添加所需表。当出现“添加表”对话框时,将时,将 StudentsStudents 表、表、 CoursesCourses 表和表和 ScoresScores 表添表添加视图中,然后关闭“添加表”对话框,并进入加视图中,然后关闭“添加表”对话框,并进入查询设计器窗口查询设计器窗口 ..

向视图中添加所需表列。在查询设计器窗口上部向视图中添加所需表列。在查询设计器窗口上部的“图表”窗格中,单击要输出的表列左侧的输的“图表”窗格中,单击要输出的表列左侧的输出复选框,使这些列出现在下方的设计网格中。出复选框,使这些列出现在下方的设计网格中。

  在本例中,通过视图输出的列包括  在本例中,通过视图输出的列包括 StudentsStudents表中的表中的 student_numstudent_num 列和列和 student_namestudent_name 列、列、CoursesCourses 表中的表中的 course_namecourse_name 列以及列以及 ScoresScores表中的表中的 scorescore 列。列。

指定输出列的别名。在设计网格中,分别在指定输出列的别名。在设计网格中,分别在 studstudent_nument_num ,, student_namestudent_name ,, course_namecourse_name和和 scorescore 列的“别名”框中键入中文名称,即列的“别名”框中键入中文名称,即“学号”、“姓名”、“课程名称”和“成绩”。“学号”、“姓名”、“课程名称”和“成绩”。

Page 33: 第 12 章  SQL Server 应用程序开发

设置排序选项。在设计网格中,单击设置排序选项。在设计网格中,单击 student_nastudent_nameme 列的“排序”单元格,然后选择“升序”选列的“排序”单元格,然后选择“升序”选项,如图项,如图 12.1912.19 所示。所示。

Page 34: 第 12 章  SQL Server 应用程序开发

单击工具栏上的“保存”按钮,并在“另单击工具栏上的“保存”按钮,并在“另存为”对话框中将视图名称指定为“学生存为”对话框中将视图名称指定为“学生成绩”,然后单击“确定”按钮。成绩”,然后单击“确定”按钮。

从“视图”选单中选择“数据表视图”命从“视图”选单中选择“数据表视图”命令,或者单击工具栏上的“视图”按钮,令,或者单击工具栏上的“视图”按钮,或者单击工具栏的“运行”按钮,以浏览或者单击工具栏的“运行”按钮,以浏览视图的运行结果,如图视图的运行结果,如图 12.2012.20 所示。所示。

Page 35: 第 12 章  SQL Server 应用程序开发

若要查看视图中的若要查看视图中的 SQLSQL语句,单击工具栏的“语句,单击工具栏的“ SQL”SQL”按钮即可。此时将在按钮即可。此时将在 SQLSQL 窗格中看到以下窗格中看到以下 SELECTSELECT查询语句:查询语句:

   SELECT TOP 100 PERCENT dbo.Students.stuSELECT TOP 100 PERCENT dbo.Students.student_num AS dent_num AS 学号,学号, dbo.Students.student_num dbo.Students.student_num AS AS 姓名,姓名, dbo.Courses.course_name ASdbo.Courses.course_name AS课程名称,课程名称,dbo.Score.score ASdbo.Score.score AS 成绩 成绩 FROM dbo.Courses INNFROM dbo.Courses INNER JOIN dbo.Score ON dbo.Courses.course_id INER JOIN dbo.Score ON dbo.Courses.course_id INNER JOIN dbo.Students ON dbo.Scores. student_NER JOIN dbo.Students ON dbo.Scores. student_id= dbo.Students.student_id ORDER BY dbo.Studid= dbo.Students.student_id ORDER BY dbo.Students.student_nameents.student_name

Page 36: 第 12 章  SQL Server 应用程序开发

由于事先已经使用图表设计器分别在由于事先已经使用图表设计器分别在 StudentsStudents 表表和和 ScoresScores 表以及表以及 CoursesCourses 表和表和 ScoresScores 表之间建表之间建立了关系,故在上述语句的立了关系,故在上述语句的 FROMFROM子句中自动出子句中自动出现了现了 INNER JOININNER JOIN运算符,通过内连接返回到在运算符,通过内连接返回到在连接列中具有相等值的行。此外,在上述语句中连接列中具有相等值的行。此外,在上述语句中还自动出现了还自动出现了 TOP 100 PERCENTTOP 100 PERCENT 选项,如果不选项,如果不想使用该选项,可以单击工具栏上的“属性”按想使用该选项,可以单击工具栏上的“属性”按钮,然后在“属性”对话框的“视图”选项卡中钮,然后在“属性”对话框的“视图”选项卡中清除“顶端”复选框。清除“顶端”复选框。

  在  在 AccessAccess 项目中创建一个视图之后,若要项目中创建一个视图之后,若要在数据表视图中查看结果集的内容,请单击该视在数据表视图中查看结果集的内容,请单击该视图,然后单击项目窗口工具栏上的“打开”按钮图,然后单击项目窗口工具栏上的“打开”按钮 ;;若要在设计视图中修改该视图的定义,请单击该若要在设计视图中修改该视图的定义,请单击该视图,然后单击项目窗口工具栏上的“设计”按视图,然后单击项目窗口工具栏上的“设计”按钮钮 ;; 若从项目中要删除该视图,请单击该视图,若从项目中要删除该视图,请单击该视图,然后单击项目窗口工具栏上的“删除”按钮。 然后单击项目窗口工具栏上的“删除”按钮。

Page 37: 第 12 章  SQL Server 应用程序开发

12.1.7 12.1.7 使用窗体使用窗体

通过通过 AccessAccess 项目中的窗体可以输入和显示数据,项目中的窗体可以输入和显示数据,这种窗体存储在这种窗体存储在 AccessAccess 项目中,数据本身则存项目中,数据本身则存储在储在 SQL ServerSQL Server 数据库中。在数据库中。在 Access 2002Access 2002 中,中,既可以在设计视图中创建窗体,也可以使用向导既可以在设计视图中创建窗体,也可以使用向导创建窗体。创建窗体。

[[ 例例 12.4] 12.4] 本例说明如何使用向导创建窗体。在本例说明如何使用向导创建窗体。在项目文件项目文件 Student.adpStudent.adp 中创建一个名为“学生资中创建一个名为“学生资料”的窗体,通过该窗体可以查看或修改料”的窗体,通过该窗体可以查看或修改 StudenStudentt 表中的数据。表中的数据。

Page 38: 第 12 章  SQL Server 应用程序开发

步骤步骤 在在 Access 2002Access 2002 中打开项目文件中打开项目文件 Student.adpStudent.adp 。。 启动窗体向导。在如图启动窗体向导。在如图 12.2112.21 所示的项目窗口中所示的项目窗口中

单击对象栏下方的“窗体”,然后双击“使用向单击对象栏下方的“窗体”,然后双击“使用向导创建窗体”。导创建窗体”。

Page 39: 第 12 章  SQL Server 应用程序开发

确定在窗体上使用哪些字段。当出现如图确定在窗体上使用哪些字段。当出现如图 12.2212.22所示的对话框时,首先从“表所示的对话框时,首先从“表 //查询”列表框中查询”列表框中选择将要作用窗体数据源的表或视图,然后在选择将要作用窗体数据源的表或视图,然后在“可用字段”列表框中依次双击所需要的每个字“可用字段”列表框中依次双击所需要的每个字段,将它们添加到“选定的字段”列表框中。也段,将它们添加到“选定的字段”列表框中。也可以从多个表或视图中选择字段。若要删除某个可以从多个表或视图中选择字段。若要删除某个已经选定的字段,请在“选定的字段”列表框中已经选定的字段,请在“选定的字段”列表框中双击该字段。双击该字段。

Page 40: 第 12 章  SQL Server 应用程序开发

在本例中,为窗体选择的字段均来自在本例中,为窗体选择的字段均来自 StudentStudent 表,表,包括包括 student_numstudent_num ,, student_namestudent_name ,, studestudent_sex,birthdate,department,speciality,gradnt_sex,birthdate,department,speciality,gradee 以及以及 classclass字段。确定窗体上所需字段后,单击字段。确定窗体上所需字段后,单击“下一步”按钮。“下一步”按钮。

确定窗体布局。当出现如图确定窗体布局。当出现如图 12.2312.23 所示的“窗体所示的“窗体向导”对话框时,为窗体选择一种适当的布局方向导”对话框时,为窗体选择一种适当的布局方式。式。

Page 41: 第 12 章  SQL Server 应用程序开发

每当选择一种布局方式时,可以在该对话每当选择一种布局方式时,可以在该对话框的左半部分查看相应的布局效果。例如,框的左半部分查看相应的布局效果。例如,若要使每个表列都显示在一个独立的行上,若要使每个表列都显示在一个独立的行上,并且左边带有一个标签,请选择“纵栏并且左边带有一个标签,请选择“纵栏式”选项式”选项 ;; 若要使每一行的所有表列都显示若要使每一行的所有表列都显示在一行,标签显示在窗体的顶端,请选择在一行,标签显示在窗体的顶端,请选择“表格”选项。“表格”选项。

在本例中选择了“纵栏式”布局,单击在本例中选择了“纵栏式”布局,单击“下一步”按钮。“下一步”按钮。

Page 42: 第 12 章  SQL Server 应用程序开发

确定窗体样式。当出现如图确定窗体样式。当出现如图 12.2412.24 所示的“窗体所示的“窗体向导”对话框时,选择窗体所用的样式,可供选向导”对话框时,选择窗体所用的样式,可供选择的样式有“择的样式有“ SumiSumi画”、“国际”、“宣纸”、画”、“国际”、“宣纸”、“工业”、“标准”、“沙岩”、“混合”、“工业”、“标准”、“沙岩”、“混合”、“石头”、“蓝图”和“远征”。“石头”、“蓝图”和“远征”。

在本例中选择了“标准”样式,然后单击“下在本例中选择了“标准”样式,然后单击“下一步”按钮。一步”按钮。

Page 43: 第 12 章  SQL Server 应用程序开发

在如图在如图 12.2512.25 所示的“窗体向导”对话框中,将所示的“窗体向导”对话框中,将窗体的标题指定为“学生资料”,并选取“修改窗体的标题指定为“学生资料”,并选取“修改窗体设计”选项,然后单击“完成”按钮窗体设计”选项,然后单击“完成”按钮。。

Page 44: 第 12 章  SQL Server 应用程序开发

在窗体设计器窗口中打开窗体之后,在窗体页眉在窗体设计器窗口中打开窗体之后,在窗体页眉区中添加一个标签,其文本内容为“学生资料”,区中添加一个标签,其文本内容为“学生资料”,并设置字体和字号并设置字体和字号 ;; 将每个文本框左侧的标签内将每个文本框左侧的标签内容改为中文,例如将容改为中文,例如将 student_numstudent_num改为“学改为“学号”,将号”,将 student_namestudent_name改为“姓名”,等等。改为“姓名”,等等。经过修改后的窗体布局如图经过修改后的窗体布局如图 12.2612.26 所示。所示。

Page 45: 第 12 章  SQL Server 应用程序开发

从“视图”选单中选择“窗体视图”命令,或者从“视图”选单中选择“窗体视图”命令,或者单击工具栏上的“视图”按钮,以查看窗体的运单击工具栏上的“视图”按钮,以查看窗体的运行效果,如图行效果,如图 12.2712.27 所示。所示。

Page 46: 第 12 章  SQL Server 应用程序开发

在“窗体”视图中查看学生资料的情形如在“窗体”视图中查看学生资料的情形如图图 12.2712.27所示,此时可以通过单击窗体底所示,此时可以通过单击窗体底部的部的浏览按钮在不同学生记录之间移动。浏览按钮在不同学生记录之间移动。

在项目中创建一个窗体之后,若要在窗在项目中创建一个窗体之后,若要在窗体视图中查看该窗体,请单击该窗体,然体视图中查看该窗体,请单击该窗体,然后单击项目窗口工具栏上的“打开”按钮后单击项目窗口工具栏上的“打开”按钮 ;;若要修改该窗体的布局,请单击该窗体,若要修改该窗体的布局,请单击该窗体,然后单击项目窗口工具栏上的“设计”按然后单击项目窗口工具栏上的“设计”按钮钮 ;; 若要删除该窗体,请单击该窗体,然后若要删除该窗体,请单击该窗体,然后单击项目窗口工具栏上的“删除”按钮。单击项目窗口工具栏上的“删除”按钮。

Page 47: 第 12 章  SQL Server 应用程序开发

12.1.8 12.1.8 使用报表使用报表 使用使用 AccessAccess 项目中的报表可以对数据进行计算、项目中的报表可以对数据进行计算、分组、汇总和打印,报表存储在分组、汇总和打印,报表存储在 AccessAccess 项目中,项目中,数据本身则存储在数据本身则存储在 SQL ServerSQL Server 数据库中。在数据库中。在 AcAccess 2002cess 2002 中,既可以使用报表设计器创建报表,中,既可以使用报表设计器创建报表,也可以使用向导创建报表。也可以使用向导创建报表。

[[ 例例 12.5] 12.5] 本例说明如何使用向导创建报表。在项本例说明如何使用向导创建报表。在项目目 Student.adpStudent.adp 中创建一个名为“学生资料”的中创建一个名为“学生资料”的报表,按照学号升序显示所有学生的部分信息,报表,按照学号升序显示所有学生的部分信息,并要求按照班级分组显示。并要求按照班级分组显示。

Page 48: 第 12 章  SQL Server 应用程序开发

步骤步骤 在在 Access 2002Access 2002 中打开项目文件中打开项目文件 Student.adpStudent.adp 。。 启动报表向导。在如图启动报表向导。在如图 12.2812.28 所示的项目窗口中所示的项目窗口中

单击对象栏下方的“报表”,然后双击使用向导单击对象栏下方的“报表”,然后双击使用向导创建报表。创建报表。

Page 49: 第 12 章  SQL Server 应用程序开发

确定报表上使用哪些字段。当出现如图确定报表上使用哪些字段。当出现如图 12.2912.29 所所示的“报表向导”对话框时,从“表示的“报表向导”对话框时,从“表 //查询”列查询”列表框中选择“表:表框中选择“表: Students”Students” ,然后在“可用字,然后在“可用字段”列表框中依次双击所需字段,将它们添加到段”列表框中依次双击所需字段,将它们添加到“选定的字段”列表框中“选定的字段”列表框中 .. 在本例中选定在本例中选定 studentstudent_num,student_name_num,student_name ,, student_sex,birthdatstudent_sex,birthdate,department,speciality,gradee,department,speciality,grade 以及以及 classclass字段。字段。然后单击“下一步”按钮。 然后单击“下一步”按钮。

Page 50: 第 12 章  SQL Server 应用程序开发

确定分组级别。当出现如图确定分组级别。当出现如图 12.3012.30 所示的“报表所示的“报表向导”对话框时,在左边的列表框中双击要作为向导”对话框时,在左边的列表框中双击要作为分组依据的字段。在本例中选择分组依据的字段。在本例中选择 classclass字段作为字段作为分组依据,然后单击“下一步”按钮 分组依据,然后单击“下一步”按钮

Page 51: 第 12 章  SQL Server 应用程序开发

确定排序次序。当出现如图确定排序次序。当出现如图 12.3112.31 所示的“报表所示的“报表向导”对话框时,确定明细信息使用的排序次序,向导”对话框时,确定明细信息使用的排序次序,最多可以选择四个字段对记录排序,既可以是升最多可以选择四个字段对记录排序,既可以是升序也可以是降序。单击“升序”按钮,则它变为序也可以是降序。单击“升序”按钮,则它变为“降序”,反之亦然。在本例中选择“降序”,反之亦然。在本例中选择 student_nstudent_numum字段作为排序依据,然后单击“下一步”按字段作为排序依据,然后单击“下一步”按钮。钮。

Page 52: 第 12 章  SQL Server 应用程序开发

确定报表的布局方式和打印方向。在如图确定报表的布局方式和打印方向。在如图 12.3212.32 所示的“报所示的“报表向导”对话框中,为报表选择一种适当的布局方式,可供表向导”对话框中,为报表选择一种适当的布局方式,可供选择的布局方式有“递阶”、“块”、“分级显示选择的布局方式有“递阶”、“块”、“分级显示 1”1” 、、“分级显示“分级显示 2”2” 、“左对齐、“左对齐 1”1” 以及“左对齐以及“左对齐 2”2” ,每当选,每当选择一种布局方式时,都可以在对话框左边查看相应的布局效择一种布局方式时,都可以在对话框左边查看相应的布局效果果 ;; 选择报表的打印方向,根据表中使用字段的多少可以选选择报表的打印方向,根据表中使用字段的多少可以选择“纵向”或者“横向”。择“纵向”或者“横向”。

   在本例中,为报表选择的布局方式为“左对齐   在本例中,为报表选择的布局方式为“左对齐 1”1” ,,打印方式为“纵向”,并选定“调整字段宽度使所有字段都打印方式为“纵向”,并选定“调整字段宽度使所有字段都能显示在一页中”复选框,然后单击“下一步” 能显示在一页中”复选框,然后单击“下一步”

按扭.按扭.

Page 53: 第 12 章  SQL Server 应用程序开发

确定报表所用样式。在如图确定报表所用样式。在如图 12.3312.33 所示的“报表向所示的“报表向导”对话框中,为报表选择一种样式,可供选择的样导”对话框中,为报表选择一种样式,可供选择的样式有“大胆”、“正式”、“淡灰”、“紧凑”、式有“大胆”、“正式”、“淡灰”、“紧凑”、“组织”和“随意”。在本例中为报表选择“组织”“组织”和“随意”。在本例中为报表选择“组织”样式,然后单击“下一步”按钮。样式,然后单击“下一步”按钮。

Page 54: 第 12 章  SQL Server 应用程序开发

指定报表标题。在如图指定报表标题。在如图 12.3412.34 所示的“报表向所示的“报表向导”对话框中,为报表指定标题(本例中为“学导”对话框中,为报表指定标题(本例中为“学生资料”)。并选择“修改报表设计”选项,然生资料”)。并选择“修改报表设计”选项,然后单击“下一步”按钮。后单击“下一步”按钮。

Page 55: 第 12 章  SQL Server 应用程序开发

在报表设计器窗口中打开报表之后,将报表中所在报表设计器窗口中打开报表之后,将报表中所有标签中的字段名改为中文,例如将“有标签中的字段名改为中文,例如将“ student_student_num”num”改为“学号”等,如图改为“学号”等,如图 12.12.33 55 所示。所示。

Page 56: 第 12 章  SQL Server 应用程序开发

从“视图”选单中选择“打印预览”命令,或者从“视图”选单中选择“打印预览”命令,或者单击工具栏上的“打印预览”按钮,以查看报表单击工具栏上的“打印预览”按钮,以查看报表的布局效果。的布局效果。

在项目中创建一个报表之后,若要在打印预览视在项目中创建一个报表之后,若要在打印预览视图中查看该报表,请单击该报表,然后单击项目图中查看该报表,请单击该报表,然后单击项目窗口工具栏上的“打印预览”按钮窗口工具栏上的“打印预览”按钮 ;; 若要修改该若要修改该报表的布局,请单击该报表,然后单击项目窗口报表的布局,请单击该报表,然后单击项目窗口工具栏上的“设计”按钮工具栏上的“设计”按钮 ;; 若要删除该报表,请若要删除该报表,请单击该报表,然后单击项目窗口工具栏上的“删单击该报表,然后单击项目窗口工具栏上的“删除”按钮除”按钮。。

Page 57: 第 12 章  SQL Server 应用程序开发

12.1.912.1.9  通过项目管理 通过项目管理 SQL ServerSQL Server 数数据库据库

通过通过 AccessAccess 项目中不仅可以管理存储在项项目中不仅可以管理存储在项目中的数据库对象(例如窗体和报表等),目中的数据库对象(例如窗体和报表等),也可以管理存储在也可以管理存储在 SQL ServerSQL Server 数据库中的数据库中的数据库对象(例如表、视图和数据库图表数据库对象(例如表、视图和数据库图表等),还可以对等),还可以对 SQL ServerSQL Server 数据库本身进数据库本身进行管理。行管理。

Page 58: 第 12 章  SQL Server 应用程序开发

1.1.  显示 显示 SQL ServerSQL Server 服务器属服务器属性性 步骤步骤

在在 Access 2002Access 2002 中打开一个已与中打开一个已与 SQL ServerSQL Server 建建立连接的立连接的 AccessAccess 项目。项目。

在“视图”选单中选择“服务器属性”命令。在“视图”选单中选择“服务器属性”命令。 此时出现如图此时出现如图 12.3712.37 所示的“服务器属性”对话所示的“服务器属性”对话

框,包含了以下信息:数据库产品(框,包含了以下信息:数据库产品( Microsoft Microsoft SQL ServerSQL Server )) ;; 数据库版本号(数据库版本号( 8.08.0即为即为 SQL SQL Server 2000Server 2000 版)版) ;; 数据库服务器的名称数据库服务器的名称 ; Acce; Accessss 项目连接到的当前项目连接到的当前 SQL ServerSQL Server 数据库的名称。数据库的名称。

Page 59: 第 12 章  SQL Server 应用程序开发

      

注意当前 SQL Server 数据库名称以及其文件格式( Access 2000 或 Access 2002 )也显示在“项目”窗口的标题栏中,出现在 Access 项目文件名称的右侧。

Page 60: 第 12 章  SQL Server 应用程序开发

2.2.  备份和还原数据库 备份和还原数据库   使用  使用 AccessAccess 项目可以对项目可以对 SQL Server SQL Server

20002000 数据库进行备份和还原。应该经常定数据库进行备份和还原。应该经常定期备份数据库,以保护在硬件故障或意外期备份数据库,以保护在硬件故障或意外损失时数据的安全。利用创建数据时制作损失时数据的安全。利用创建数据时制作的备份,可以还原这些数据。若要备份并的备份,可以还原这些数据。若要备份并还原还原 SQL Server SQL Server 数据库,请使用数据库,请使用 SQL SeSQL Server rver 企业管理器。企业管理器。

  下面介绍通过  下面介绍通过 AccessAccess 项目来备份项目来备份 SQSQL Server L Server 数据库的方法。数据库的方法。

Page 61: 第 12 章  SQL Server 应用程序开发

步骤步骤 打开一个连接到打开一个连接到 SQL Server 2000SQL Server 2000 的的 AccessAccess 项项

目。目。 选择“工具→数据库实用工具→备份选择“工具→数据库实用工具→备份 SQL SQL 数据数据

库”命令。库”命令。 当出现如图当出现如图 12.3812.38 所示的“备份”对话框时,在所示的“备份”对话框时,在

“文件名”框中输入备份文件的名称(“文件名”框中输入备份文件的名称( .dat.dat ),),或使用或使用 AccessAccess 输入的默认名称。输入的默认名称。

Page 62: 第 12 章  SQL Server 应用程序开发

单击“确定”按钮。单击“确定”按钮。    需要注意的是,上述操作不备份   需要注意的是,上述操作不备份 AcAc

cesscess 项目(项目( .adp.adp ),该项目文件独立于所),该项目文件独立于所连接的连接的 SQL Server SQL Server 数据库。若要制作数据库。若要制作 AcAccesscess 项目文件的备份,请使用项目文件的备份,请使用 WindowsWindows资源管理器,将该文件复制到安全的位置。资源管理器,将该文件复制到安全的位置。

   若要还原数据库,必须断开所有用   若要还原数据库,必须断开所有用户与该数据库的连接,并关闭除“数据户与该数据库的连接,并关闭除“数据库”窗口外的所有窗口,然后执行以下操库”窗口外的所有窗口,然后执行以下操作。作。

Page 63: 第 12 章  SQL Server 应用程序开发

步骤步骤 打开一个连接到打开一个连接到 SQL Server 2000SQL Server 2000 的的 AccessAccess 项项

目。目。 选择“工具→数据库实用工具→还原选择“工具→数据库实用工具→还原 SQL SQL 数据数据

库”命令,当出现如图库”命令,当出现如图 12.3912.39 所示的对话框时,所示的对话框时,单击“是”按钮。单击“是”按钮。

Page 64: 第 12 章  SQL Server 应用程序开发

当出现如图当出现如图 12.4012.40 所示的“恢复”对话框时,在所示的“恢复”对话框时,在“查找范围”框中选择一个地址,然后找到所需“查找范围”框中选择一个地址,然后找到所需要数据库备份文件(要数据库备份文件( .dat.dat )。)。

单击数据库备份文件,然后单击“确定”按钮。单击数据库备份文件,然后单击“确定”按钮。

Page 65: 第 12 章  SQL Server 应用程序开发

3.3.  删除数据库 删除数据库 下面介绍从下面介绍从 AccessAccess 项目中删除项目中删除 SQL Server 2000SQL Server 2000 数数

据库的方法。据库的方法。   步骤步骤 断开所有用户与该数据库的连接,并关闭除“数据断开所有用户与该数据库的连接,并关闭除“数据

库”窗口外的全部窗口。库”窗口外的全部窗口。 打开连接到打开连接到 SQL Server 2000SQL Server 2000 的的 AccessAccess 项目。项目。 选择“工具→数据库实用工具→删除选择“工具→数据库实用工具→删除 SQL SQL 数据库”数据库”

命令。命令。 单击“是”按钮,确认数据库删除操作。单击“是”按钮,确认数据库删除操作。

Page 66: 第 12 章  SQL Server 应用程序开发

12.212.2  使用 使用 Visual BasicVisual Basic 开发 开发 SQL ServerSQL Server 应用程序应用程序

Visual BasicVisual Basic 是目前流行的可视化开发工是目前流行的可视化开发工具之一,它以简单易用而著称,不仅可以具之一,它以简单易用而著称,不仅可以用于开发各种类型的桌面应用程序,也可用于开发各种类型的桌面应用程序,也可以用于开发数据库应用程序。下面介绍如以用于开发数据库应用程序。下面介绍如何使用何使用 Visual Basic 6.0Visual Basic 6.0 开发开发 SQL ServerSQL Server应用程序,主要讲述通过数据控件、应用程序,主要讲述通过数据控件、 ADOADO数据控件以及数据环境访问数据控件以及数据环境访问 SQL ServerSQL Server 数数据库的方法和步骤。据库的方法和步骤。

Page 67: 第 12 章  SQL Server 应用程序开发

12.2112.21  使用数据控件 使用数据控件 数据控件是数据控件是 Visual BasicVisual Basic 的标准控件之一。的标准控件之一。

在应用程序中,可以使用数据控件和各种在应用程序中,可以使用数据控件和各种数据绑定控件来显示和更新数据库中的信数据绑定控件来显示和更新数据库中的信息。使用数据控件时,不用编写代码就能息。使用数据控件时,不用编写代码就能够创建简单的数据库应用程序。如果将数够创建简单的数据库应用程序。如果将数据控件与据控件与 Visual BasicVisual Basic 代码结合起来,则代码结合起来,则可以为数据处理提供高级的编程控件,从可以为数据处理提供高级的编程控件,从而设计出功能完备的数据库应用程序。而设计出功能完备的数据库应用程序。

Page 68: 第 12 章  SQL Server 应用程序开发

1.1.  数据控件概述 数据控件概述

   在   在 Visual BasicVisual Basic 中,使用数据控件能够将中,使用数据控件能够将窗体与数据库连接起来,只需要编写少量代码甚窗体与数据库连接起来,只需要编写少量代码甚至不用编写代码就能够完成下列任务。至不用编写代码就能够完成下列任务。

与本地数据库或远程数据库连接。与本地数据库或远程数据库连接。 基于基于 SQLSQL查询打开指定的数据库表或定义记录集。查询打开指定的数据库表或定义记录集。 将数据字段传送到各种绑定控件,并在这些控件将数据字段传送到各种绑定控件,并在这些控件

中显示或更新字段值。中显示或更新字段值。 根据绑定控件中显示的数据变化来添加新记录或根据绑定控件中显示的数据变化来添加新记录或

更新数据库。更新数据库。 捕获访问数据时出现的错误。捕获访问数据时出现的错误。 关闭数据库。关闭数据库。

Page 69: 第 12 章  SQL Server 应用程序开发

2.2.  在窗体上添加数据控件 在窗体上添加数据控件 用数据控件访问数据库时,首先要在工具箱中单击用数据控件访问数据库时,首先要在工具箱中单击

数据控件按钮,并在窗体上添加一个数据控件。数数据控件按钮,并在窗体上添加一个数据控件。数据控件的大小和位置都可以重新设置,不过,习惯据控件的大小和位置都可以重新设置,不过,习惯上是把该控件放在窗体的底部,并使其宽度与窗体上是把该控件放在窗体的底部,并使其宽度与窗体的的 ScaleWidth ScaleWidth 属性值相等。为此,请在属性窗口属性值相等。为此,请在属性窗口中把数据控件的中把数据控件的 AlignAlign 属性设置为属性设置为 22 ,使数据控件,使数据控件大小将与窗体的尺寸同步变化,如图大小将与窗体的尺寸同步变化,如图 12.4212.42 所示。所示。

Page 70: 第 12 章  SQL Server 应用程序开发

从图中可以看到,数据控件中间的空折区从图中可以看到,数据控件中间的空折区域中显示着域中显示着 Data1Data1 字样,这是数据控件的字样,这是数据控件的CaptionCaption 属性所指定的文本。在运行时可属性所指定的文本。在运行时可以用该属性来显示当前记录号。以用该属性来显示当前记录号。

Page 71: 第 12 章  SQL Server 应用程序开发

3. 3. 设置数据控件连接的数据库设置数据控件连接的数据库  使用数据控件时,首先指定要连接的数据类型,这可 使用数据控件时,首先指定要连接的数据类型,这可

以通过在属性窗口中设置数据控件的以通过在属性窗口中设置数据控件的 ConnectConnect 属性来属性来实现。实现。 ConnectConnect 属性的默认值是属性的默认值是 AccessAccess 。如果要连。如果要连接的不是接的不是 AccessAccess 数据库,而是其他类型的数据库,就数据库,而是其他类型的数据库,就必须对必须对 ConnectConnect 属性进行设置,操作方法如下:属性进行设置,操作方法如下:

   在属性窗口中选定数据控件,然后单击   在属性窗口中选定数据控件,然后单击 ConnecConnectt 属性框并选择要连接的数据库类型。若要使用数据控属性框并选择要连接的数据库类型。若要使用数据控件连接到指定的件连接到指定的 SQL ServerSQL Server 数据库,则应当用手工方数据库,则应当用手工方式在式在 ConnectConnect 属性框中输入以下字符串:属性框中输入以下字符串:

ODBC;Driver={SQLserver};Server=ServerName;ODBC;Driver={SQLserver};Server=ServerName;UID=UserID;PWD=Password; Database=DatabUID=UserID;PWD=Password; Database=DatabaseNameaseName

Page 72: 第 12 章  SQL Server 应用程序开发

在上述连接字符串中,在上述连接字符串中, ODBCODBC 表示通过表示通过 ODODBCBC驱动程序建立与数据库的连接驱动程序建立与数据库的连接 ;Server;Server 指指定要连接的定要连接的 SQL ServerSQL Server 服务器服务器 ;UID;UID 和和 PWPWDD分别指定分别指定 SQL ServerSQL Server 登录名和密码登录名和密码 ; Dat; Databaseabase 指定要连接的指定要连接的 SQL ServerSQL Server 数据库。数据库。

   例如,设   例如,设 SQL ServerSQL Server 实例运行在计实例运行在计算机算机 ABCABC 上,有一个用户上,有一个用户 IDID 为为 hegelshegels ,,相应的密码为相应的密码为 123456123456 ,若要连接的数据库为,若要连接的数据库为StudentSQLStudentSQL ,则连接字符串内容应为:,则连接字符串内容应为:

ODBC;Driver={SQLserver};Server=ABC;ODBC;Driver={SQLserver};Server=ABC;UID=hegels;PWD=123456; Database=SUID=hegels;PWD=123456; Database=StudentSQLtudentSQL

Page 73: 第 12 章  SQL Server 应用程序开发

4. 4. 设置数据控件的记录来源设置数据控件的记录来源 设置要通过数据控件连接的设置要通过数据控件连接的 SQL ServerSQL Server 数数

据库之后,还需要设置该控件的据库之后,还需要设置该控件的 RecordSouRecordSourcerce 属性,以指定在数据绑定控件中显示的属性,以指定在数据绑定控件中显示的记录来源。数据控件的记录来源。数据控件的 RecordSourceRecordSource 属性属性的值是一个字符串表达式,其值可以是一个的值是一个字符串表达式,其值可以是一个表名称,也可以是一个合法的表名称,也可以是一个合法的 SQLSQL查询语句。查询语句。

   一旦通过   一旦通过 ConnectConnect 属性指定要连接的属性指定要连接的SQL ServerSQL Server 数据库文件,数据库文件, Visual BasicVisual Basic就就会自动检索该数据库中的所有表和有效查询会自动检索该数据库中的所有表和有效查询的名称,并将它们显示在的名称,并将它们显示在 RecordSourceRecordSource 属属性列表中.性列表中.

Page 74: 第 12 章  SQL Server 应用程序开发

5.5.  使用数据绑定控件 使用数据绑定控件 数据绑定控件是数据识别控件,通过它来访问数数据绑定控件是数据识别控件,通过它来访问数

据库中的信息。当一个控件被绑到数据控件时,据库中的信息。当一个控件被绑到数据控件时,Visual BasicVisual Basic 将当前记录中的字段值应用于该控将当前记录中的字段值应用于该控件,在该控件中显示数据,并允许进行修改。如件,在该控件中显示数据,并允许进行修改。如果在绑定控件里改变了字段值,当移动到另一条果在绑定控件里改变了字段值,当移动到另一条记录时,所做的修改会自动地写入到数据库。记录时,所做的修改会自动地写入到数据库。

  在  在 Visual Basic 6.0Visual Basic 6.0 中,可用做绑定控件的中,可用做绑定控件的标准控件包括复选框、图像控件、标签、图片框、标准控件包括复选框、图像控件、标签、图片框、文本框、列表框以及组合框等;可用做绑定控件文本框、列表框以及组合框等;可用做绑定控件ActiveXActiveX控件包括控件包括 DBList,DBCombo,DataList,DBList,DBCombo,DataList,DataCombo,MSFlexGrid,DBGridDataCombo,MSFlexGrid,DBGrid 以及以及 MaskeMaskedEditdEdit等。等。

Page 75: 第 12 章  SQL Server 应用程序开发

在使用任何在使用任何 ActiveXActiveX控件之前,都需要从控件之前,都需要从“工程”选单中选择“部件”命令,然后在“工程”选单中选择“部件”命令,然后在“部件”对话框中添加该控件。此外,还必“部件”对话框中添加该控件。此外,还必须从“工程”选单中选择“引用”命令,然须从“工程”选单中选择“引用”命令,然后在“引用”对话框中注册数据访问对象后在“引用”对话框中注册数据访问对象(( DAODAO )库。)库。

  下面介绍在应用程序中使用绑定控件的  下面介绍在应用程序中使用绑定控件的方法。方法。

Page 76: 第 12 章  SQL Server 应用程序开发

步骤步骤 在窗体上添加数据控件,并设置与数据访问有关在窗体上添加数据控件,并设置与数据访问有关

的一些基本属性,例如的一些基本属性,例如 ConnectConnect 和和 RecordSourRecordSourcece 属性等,以指定要访问的属性等,以指定要访问的 SQL ServerSQL Server 数据。数据。

在同一窗体上添加绑定控件,并将其在同一窗体上添加绑定控件,并将其 DataSourcDataSourcee 属性设置为数据控件的名称,从而将该控件绑属性设置为数据控件的名称,从而将该控件绑定到数据库。定到数据库。

将绑定控件的将绑定控件的 DataFieldDataField 属性设置为一个字段名属性设置为一个字段名称,从而将该控件绑定到当前记录的一个字段。称,从而将该控件绑定到当前记录的一个字段。

Page 77: 第 12 章  SQL Server 应用程序开发

注意注意    设置   设置 DataSourceDataSource 属性后,属性后, Visual BasicVisual Basic会自动检索所有可用字段并显示在会自动检索所有可用字段并显示在 DataFieldDataField 属属性的下拉式列表框中,       性的下拉式列表框中,       

如果在设计时数据库不可用,则在数据值从数据如果在设计时数据库不可用,则在数据值从数据库中发送给控件之前,需要在运行时用代码提供库中发送给控件之前,需要在运行时用代码提供一个有效的字段名称。例如,若要将文本框一个有效的字段名称。例如,若要将文本框 TextText11绑定到绑定到 student_numstudent_num字段上,可以通过下面字段上,可以通过下面的语句来实现:的语句来实现:

     Text1. DataField=“student_num”Text1. DataField=“student_num”     对于个别字段也可以有多个绑定控件,    对于个别字段也可以有多个绑定控件,但不必为表中的每个字段都提供一个绑定控件。但不必为表中的每个字段都提供一个绑定控件。数据控件和绑定控件并不一定要设为可视的。如数据控件和绑定控件并不一定要设为可视的。如果把数据访问的能力合并到设计的窗体中,便能果把数据访问的能力合并到设计的窗体中,便能够利用程序代码在后台进行数据处理。够利用程序代码在后台进行数据处理。

Page 78: 第 12 章  SQL Server 应用程序开发

在程序运行时,数据控件、绑定控件与数在程序运行时,数据控件、绑定控件与数据库一起工作,以访问当前记录集内的数据库一起工作,以访问当前记录集内的数据。使用数据控件的箭头按钮可以在不同据。使用数据控件的箭头按钮可以在不同的记录之间移动,而用绑定控件则可以查的记录之间移动,而用绑定控件则可以查看或编辑从每个字段里显示出来的数据。看或编辑从每个字段里显示出来的数据。无论何时,只要单击数据控件的箭头按钮,无论何时,只要单击数据控件的箭头按钮,Visual BasicVisual Basic 就会自动地更新对记录集所就会自动地更新对记录集所做的任何改变。 做的任何改变。

Page 79: 第 12 章  SQL Server 应用程序开发

6.6. 用数据控件创建简单用数据控件创建简单的数据库应用程序的数据库应用程序

[[ 例例 12.6] 12.6] 本例演示如何使用数据控件和文本例演示如何使用数据控件和文本框创建一个数据库浏览程序。本框创建一个数据库浏览程序。

   步骤 步骤 在在 Visual Basic 6.0Visual Basic 6.0 中创建一个标准中创建一个标准 EXEEXE工程。工程。

在窗体上添加一个数据控件、五个文本框在窗体上添加一个数据控件、五个文本框控件和五个标签控件,其中数据控件用于控件和五个标签控件,其中数据控件用于连接数据库,文本框控件用于显示字段值,连接数据库,文本框控件用于显示字段值,标签控件用于提示字段标题。标签控件用于提示字段标题。

Page 80: 第 12 章  SQL Server 应用程序开发

按照表按照表 12.412.4 中的数据对窗体和控件的属中的数据对窗体和控件的属性进行设置。性进行设置。

Page 81: 第 12 章  SQL Server 应用程序开发

在代码窗口中,编写数据控件在代码窗口中,编写数据控件 Data1Data1 的的 RepositionReposition 事件过程:事件过程:   ‘当移动记录指针时触发数据控件的  ‘当移动记录指针时触发数据控件的 RepositionReposition 事件事件      Private Sub Data1_Reposition()Private Sub Data1_Reposition() ‘ ‘因为记录集的因为记录集的 AbsolutePositionAbsolutePosition 属性总比记录号小属性总比记录号小 11          Data1.CaptionData1.Caption=“当前记录号:”&=“当前记录号:”& Data1.RecorData1.Recor

dset.AbsolutePosition+1dset.AbsolutePosition+1 End SubEnd Sub     在上述代码中,用到了记录集对象的    在上述代码中,用到了记录集对象的 AbsolutePositiAbsolutePositi

onon 属性,该属性用于返回记录集内记录的相对记录号,而且第属性,该属性用于返回记录集内记录的相对记录号,而且第一条记录的记录号为一条记录的记录号为 00 。为了用数据控件的。为了用数据控件的 CaptionCaption 属性来显属性来显示当前记录号,应将数据控件示当前记录号,应将数据控件 Data1Data1 的的 RecordsetTypeRecordsetType 属性属性设置为设置为 11 (动态集)或(动态集)或 22 (快照型记录集)。(快照型记录集)。

按下按下 F5F5 键,运行程序。单击数据控件上的箭头按钮,可以在不键,运行程序。单击数据控件上的箭头按钮,可以在不同的记录之间移动,而且在数据控件中间显示出当前的记录号.同的记录之间移动,而且在数据控件中间显示出当前的记录号.

Page 82: 第 12 章  SQL Server 应用程序开发

12.2.212.2.2  添加 添加 ADOADO 数据控件数据控件

ADOADO 数据控件使用数据控件使用 ActiveXActiveX 数据对象(数据对象( AADODO )来快速建立数据绑定控件与数据源之)来快速建立数据绑定控件与数据源之间的联系,使用该控件可以快速创建记录间的联系,使用该控件可以快速创建记录集并通过数据绑定控件将数据提供给用户。集并通过数据绑定控件将数据提供给用户。

Page 83: 第 12 章  SQL Server 应用程序开发

1.1.  添加 添加 ADOADO 数据控件数据控件 步骤步骤 在“工程”选单中选择“部件”。在“工程”选单中选择“部件”。 在“部件”对话框的“控件”选项卡中,选择在“部件”对话框的“控件”选项卡中,选择

Microsoft ADO Data Control 6.0(OLEDB)Microsoft ADO Data Control 6.0(OLEDB)复选框。复选框。

单击“确定”按钮,将单击“确定”按钮,将 ADOADO 数据控件添加到数据控件添加到Visual BasicVisual Basic 的工具箱中,如图的工具箱中,如图 12.4912.49 所示。所示。

在工具箱中双击在工具箱中双击 AdodcAdodc控件按钮,在窗体上控件按钮,在窗体上添加一个添加一个 ADOADO 数据控件,如图数据控件,如图 12.5012.50 所示。所示。

Page 84: 第 12 章  SQL Server 应用程序开发

2.2.  设置 设置 ADOADO 数据控件连接的数据数据控件连接的数据库库

  在窗体上添加  在窗体上添加 ADOADO 数据控件后,通过设置该数据控件后,通过设置该控件的控件的 ConnectionStringConnectionString 属性可以指定所要连接属性可以指定所要连接的的 SQL ServerSQL Server 数据库,这种连接可以通过数据库,这种连接可以通过 OLE DOLE DBB 提供程序或提供程序或 ODBCODBC驱动程序来实现。驱动程序来实现。 OLE DB(OOLE DB(Obejct Linking & Embedding Database)bejct Linking & Embedding Database) 是一种是一种基于基于 COMCOM 访问数据的应用程序接口,它支持可以访问数据的应用程序接口,它支持可以使用使用 OLE DBOLE DB 提供程序的任意数据源的访问。提供程序的任意数据源的访问。 ODODBCBC (( Open Database ConnectivityOpen Database Connectivity )是一种数)是一种数据访问应用程序接口,它支持可以使用据访问应用程序接口,它支持可以使用 ODBCODBC驱动驱动程序的任意数据源的访问。程序的任意数据源的访问。

       ConnectionStringConnectionString 属性值是一个字符串,属性值是一个字符串,给出建立数据库连接所需要的所有信息,因此也称给出建立数据库连接所需要的所有信息,因此也称为连接字符串。该字符串的主要内容包括访问数据为连接字符串。该字符串的主要内容包括访问数据所用的提供程序或驱动程序、服务器名称、用户标所用的提供程序或驱动程序、服务器名称、用户标识和登录密码以及要连接的默认数据库等。识和登录密码以及要连接的默认数据库等。

Page 85: 第 12 章  SQL Server 应用程序开发

若要通过若要通过 OLE DBOLE DB 提供程序来访问提供程序来访问 SQL ServerSQL Server数据库,应按照以下语法格式来设置数据库,应按照以下语法格式来设置 ADOADO 数据数据控件的控件的 ConnectionStringConnectionString 属性值:属性值:

Adodc1.ConnectionString=”PROVIDER=SQAdodc1.ConnectionString=”PROVIDER=SQLOLEDB;DATA SOURCE=ServerName;”&LOLEDB;DATA SOURCE=ServerName;”&_”UID=User;PWD=Password;DATABASE=D_”UID=User;PWD=Password;DATABASE=DatabaseName”atabaseName”

若要通过若要通过 ODBCODBC驱动程序来访问驱动程序来访问 SQL ServerSQL Server数据库,应按照以下语法格式来设置数据库,应按照以下语法格式来设置 ADOADO 数据数据控件的控件的 ConnectionStringConnectionString 属性值:属性值:

Adodc1.ConnectionString=”DRIVER={SQLSAdodc1.ConnectionString=”DRIVER={SQLServer};”&_erver};”&_

””UID=UserID;PWD=Password;DATABASE=UID=UserID;PWD=Password;DATABASE=DatabaseName”DatabaseName”

Page 86: 第 12 章  SQL Server 应用程序开发

3. 3. 设置设置 ADOADO 数据控件的记录来数据控件的记录来源源 在设置在设置 ADOADO 数据控件所要连接的数据控件所要连接的 SQL ServerSQL Server 数据数据

库之后,还需要通过设置该控件的库之后,还需要通过设置该控件的 RecordSourceRecordSource属性来指定来源。属性来指定来源。

  步骤步骤 在属性窗口中选择在属性窗口中选择 ADOADO 数据控件。数据控件。 单击单击 RecordSourceRecordSource 属性框右边的对话按钮。属性框右边的对话按钮。 当出现如图当出现如图 12.5112.51 所示的“属性页”对话框时,从所示的“属性页”对话框时,从

“命令类型”列表框中选择所需命令类型:“命令类型”列表框中选择所需命令类型: 若要通过执行一个若要通过执行一个 SQLSQL语句来生成记录集,请选择语句来生成记录集,请选择

““ 11-- adCmdText”adCmdText” 。。 若要从一个数据库表中检索数据库,请选择“若要从一个数据库表中检索数据库,请选择“ 22-- aa

dCmdTable”dCmdTable” 。。 若要通过执行一个存储过程来生成记录集,请选择若要通过执行一个存储过程来生成记录集,请选择

““ 44-- adCmdStoredPro adCmdStoredPro

Page 87: 第 12 章  SQL Server 应用程序开发

根据步骤(根据步骤( 33 )完成的操作不同,执行下)完成的操作不同,执行下列操作之一:列操作之一:

若在步骤(若在步骤( 33 )中选择的命令类型为)中选择的命令类型为 22 或或 44 ,,请在“表或存储过程名称”框中选择所需请在“表或存储过程名称”框中选择所需的表名称或存储过程名称。的表名称或存储过程名称。

若在步骤(若在步骤( 33 )中选择的命令类型为)中选择的命令类型为 11 ,,请在“命令文本(请在“命令文本( SQLSQL )”框中输入一个)”框中输入一个SQLSQL 查询语句。查询语句。

单击“确定”按钮,完成单击“确定”按钮,完成 RecordSourceRecordSource属性的设置。属性的设置。

Page 88: 第 12 章  SQL Server 应用程序开发

4.4.  设置 设置 ADOADO 数据控件的其他属数据控件的其他属性性

除了设置除了设置 ConnectionStringConnectionString 和和 RecordSourceRecordSource属性之外,使用属性之外,使用 ADOADO 数据控件时经常需要设置数据控件时经常需要设置以下属性。以下属性。

ConnectionTimeoutConnectionTimeout 属性:设置在中止前等待属性:设置在中止前等待打开连接的时间量(单位为秒)。打开连接的时间量(单位为秒)。

CursorLocationCursorLocation 属性:指定所使用的游标引擎,属性:指定所使用的游标引擎,其取值为其取值为 22-- adUseServeradUseServer (服务器端游标)或(服务器端游标)或33-- adUseClientadUseClient (客户端游标)。(客户端游标)。

CursorTypeCursorType 属性:设置用于下一级记录集的游属性:设置用于下一级记录集的游标类型,其取值为标类型,其取值为 11-- adOpenKeysetadOpenKeyset (键集游(键集游标)、标)、 22-- adOpenDynamicadOpenDynamic (动态游标)或(动态游标)或 33-- adOpenStatic adOpenStatic (静态游标)。(静态游标)。

Page 89: 第 12 章  SQL Server 应用程序开发

5.5.  使用 使用 ADOADO 数据控件数据控件开发数据库应用程序开发数据库应用程序

下面给出通过下面给出通过 ADOADO 数据控件访问数据库的例数据控件访问数据库的例子。子。

[[ 例例 12.8] 12.8] 使用使用 ADOADO 数据控件和列表框控件设数据控件和列表框控件设计一个数据库应用程序,其功能是根据学号查计一个数据库应用程序,其功能是根据学号查询成绩。询成绩。

在在 Visual Basic 6.0Visual Basic 6.0 中创建一个标准中创建一个标准 EXEEXE工程。工程。 在工具箱中添加在工具箱中添加 ADOADO 数据控件,为此应在数据控件,为此应在

“部件”对话框的“控件”选项卡中选择“部件”对话框的“控件”选项卡中选择 MicMicrosoft DataGrid Control 6.0(OLEDB)rosoft DataGrid Control 6.0(OLEDB) 。。

在窗体上添加在窗体上添加 ADOADO 数据控件数据控件 Adodc1.Adodc1.

Page 90: 第 12 章  SQL Server 应用程序开发

在窗体上添加其他控件,包括标签在窗体上添加其他控件,包括标签 Label1Label1和和 Label2Label2 、文本框、文本框 Text1Text1 、命令按钮、命令按钮 CoCommand1mmand1 、线段、线段 Line1Line1 以及列表框以及列表框 List1List1 。。

按照表按照表 12.612.6 中的数据设置窗体和控件的属中的数据设置窗体和控件的属性,设计好的窗体布局如图性,设计好的窗体布局如图 12.5212.52 所示。所示。

Page 91: 第 12 章  SQL Server 应用程序开发

在窗体上双击命令按钮在窗体上双击命令按钮 Command1Command1 ,然后在代码窗口中编写该控,然后在代码窗口中编写该控件的件的 ClickClick 事件过程,程序代码如下:事件过程,程序代码如下:

   Private Sub Command1_Click()Private Sub Command1_Click() Const REC_SRC=”SELECT Students.student_num AS Const REC_SRC=”SELECT Students.student_num AS 学学号号 ,”&_,”&_

“ “Students.student_name AS Students.student_name AS 课程课程 ,”&_,”&_ “ “Scores.score ASScores.score AS 成绩”成绩” &_&_ “ “FROM Courses INNER JOIN “&_FROM Courses INNER JOIN “&_ “ “Scores ON Courses.course_id=Scores.course_id INNER JScores ON Courses.course_id=Scores.course_id INNER J

OIN “&_OIN “&_ “ “Students ON Scores.student_id=Students.student_id “Students ON Scores.student_id=Students.student_id “ Dim sNum As String,Ssql as string,sfldname as string,sfldvalDim sNum As String,Ssql as string,sfldname as string,sfldval

ue as stringue as string Snum=text1.text ‘Snum=text1.text ‘ 从文本框中取得输入的学号并存入变量从文本框中取得输入的学号并存入变量 snusnu

mm If snum=”” thenIf snum=”” then Msgbox “Msgbox “ 请指定学号!”请指定学号!” ,vbokonly+vbinformation,”,vbokonly+vbinformation,”学生学生

成绩查询系统”成绩查询系统” Exit subExit sub ElseElse

Page 92: 第 12 章  SQL Server 应用程序开发

‘‘动态生成查询语句动态生成查询语句     ssql=rec_src & ”where student_num=” & “ ‘ “ & snum ssql=rec_src & ”where student_num=” & “ ‘ “ & snum

& “ ‘ “& “ ‘ “ end if end if adodc1.recordsource=ssql ‘adodc1.recordsource=ssql ‘ 动态设置动态设置 ADOADO 数据控件的记录来数据控件的记录来

源源 adodc1.refresh ‘adodc1.refresh ‘打开或重新打开数据库内容打开或重新打开数据库内容 ‘‘recordsetrecordset 表示通过表示通过 ADOADO 数据控件打开的记录集,数据控件打开的记录集, EOFEOF 属性为真属性为真

表明记录为空表明记录为空            if adodc1.recordset.EOF thenif adodc1.recordset.EOF then msgbox “msgbox “查无此人。请核实后重新输入!”查无此人。请核实后重新输入!” ,vbokonly+vbinfor,vbokonly+vbinfor

mation,”mation,”学生成绩查询系统”学生成绩查询系统”        exit subexit sub end ifend if Label2.Caption=adodc1.recordset.fieldsLabel2.Caption=adodc1.recordset.fields (“姓名”)&“同(“姓名”)&“同学的成绩如下:”学的成绩如下:”

         List1.Clear ‘List1.Clear ‘清空列表框清空列表框          Sfldname=adodc1.recordset.fields(2).name & vbtab & Sfldname=adodc1.recordset.fields(2).name & vbtab &

vbtab & vbtab &_vbtab & vbtab &_

Page 93: 第 12 章  SQL Server 应用程序开发

Adodc1.recordset.fields(3).nameAdodc1.recordset.fields(3).name List1.additem sfldname ‘ List1.additem sfldname ‘ 将字段名添加到列表框将字段名添加到列表框 List1.additem “-------------------------------------------------List1.additem “-------------------------------------------------

““ While not adodc1.recordset.eofWhile not adodc1.recordset.eof Sfldvalue=adodc1.recordset.fields(2).valud & vbtSfldvalue=adodc1.recordset.fields(2).valud & vbt

ab & vbtab &_ab & vbtab &_ Adodc1.recordset.fields(3).valueAdodc1.recordset.fields(3).value List1.additem sfldvalue ‘List1.additem sfldvalue ‘ 将课程和成绩添加到将课程和成绩添加到

列表框列表框      Adodc1.receorset.movenext ‘Adodc1.receorset.movenext ‘ 将记录指针移到将记录指针移到

下一条记录下一条记录 WendWend End subEnd sub (( 77 )按)按 F5F5 键,运行程序。在文本框中输入一个学号,键,运行程序。在文本框中输入一个学号,

然后单击“查看成绩”,如果指定的学生存在于数据库中,然后单击“查看成绩”,如果指定的学生存在于数据库中,则会在列表框中显示该生各门课程的成绩. 则会在列表框中显示该生各门课程的成绩.

Page 94: 第 12 章  SQL Server 应用程序开发

12.2.312.2.3  使用数据环境设计器 使用数据环境设计器 数据环境设计器为创建编程运行时数据访问提供了一个数据环境设计器为创建编程运行时数据访问提供了一个交互的设计时环境。在设计时,可以对交互的设计时环境。在设计时,可以对 ConnectionConnection和和 CommandCommand 对象设置适当的值、编写代码响应对象设置适当的值、编写代码响应 ADOADO事件、执行命令、创建合计与层次结构,也可以拖动事件、执行命令、创建合计与层次结构,也可以拖动 DDataEnvironmentataEnvironment 对象到窗体来创建数据绑定的控件。对象到窗体来创建数据绑定的控件。

使用数据环境设计器可以完成下面的工作:添加一个数使用数据环境设计器可以完成下面的工作:添加一个数据环境设计器到一个据环境设计器到一个 Visual BasicVisual Basic 工程中:创建工程中:创建 ConConnectionnection 对象;基于表、视图、对象;基于表、视图、 SQLSQL语句或存储过程语句或存储过程等创建等创建 CommandCommand 对象对象 ;; 基于基于 CommandCommand 对象的一个对象的一个分组,或通过与一个或多个分组,或通过与一个或多个 CommandCommand 对象相关来创对象相关来创建命令对象的层次结构;为建命令对象的层次结构;为 ConnectionConnection 和和 RecordseRecordsett 对象编写和运行代码;从数据环境设计器中拖动一个对象编写和运行代码;从数据环境设计器中拖动一个CommandCommand 对象中的字段到一个对象中的字段到一个 Visual BasicVisual Basic 窗体或窗体或数据报表设计器。数据报表设计器。

Page 95: 第 12 章  SQL Server 应用程序开发

1.1.  添加数据环境设计器 添加数据环境设计器

若要添加一个数据环境设计器对象到一个新的若要添加一个数据环境设计器对象到一个新的 VisVisual Basicual Basic工程,请执行以下操作。工程,请执行以下操作。

    步骤步骤 从“文件”选单中选择“新建工程”命令。从“文件”选单中选择“新建工程”命令。 在“新建工程”对话框的“新建”选项卡中,选择在“新建工程”对话框的“新建”选项卡中,选择

“标准“标准 EXE”EXE”工程,然后单击“打开”按钮。工程,然后单击“打开”按钮。 从“工程”选单中选择“添加从“工程”选单中选择“添加 DataEnvironmenDataEnvironmen

t”t” 命令。命令。 一旦数据环境设计器被添加到一旦数据环境设计器被添加到 Visual BasicVisual Basic工程工程

中,数据环境设计器窗口出现,并且将一个中,数据环境设计器窗口出现,并且将一个 ConnConnectionection 对象添加到数据环境,同时在工程窗口中出对象添加到数据环境,同时在工程窗口中出现一个现一个 DataEnvironmentDataEnvironment 对象。对象。

Page 96: 第 12 章  SQL Server 应用程序开发

2.2.  创建 创建 ConnectionConnection 对象对象   若要通过数据环境访问数据,就必须创建一个  若要通过数据环境访问数据,就必须创建一个 CoCo

nnectionnnection 对象。因此,每一个数据环境应当最少包括对象。因此,每一个数据环境应当最少包括一个一个 ConnectionConnection 对象。一个对象。一个 ConnectionConnection 对象表示对象表示一个到远程数据库的连接,该数据库被用做一个数据源。一个到远程数据库的连接,该数据库被用做一个数据源。

  一旦在  一旦在 Visual BasicVisual Basic 工程中添加了一个数据环境,工程中添加了一个数据环境,数据环境设计器就自动地包括一个新的连接,称为数据环境设计器就自动地包括一个新的连接,称为 CoConnection1nnection1 。在设计时,数据环境打开连接并从该连接。在设计时,数据环境打开连接并从该连接中获得元数据,包括数据库对象、表结构和过程参数。中获得元数据,包括数据库对象、表结构和过程参数。

  若要创建新的  若要创建新的 ConnectionConnection 对象,请执行下列操作对象,请执行下列操作之一:之一:

在数据环境设计器窗口工具栏上单击“添加连接”按钮。在数据环境设计器窗口工具栏上单击“添加连接”按钮。 右击数据环境设计器窗口,然后从快捷选单中选择“添右击数据环境设计器窗口,然后从快捷选单中选择“添加连接”命令。加连接”命令。

Page 97: 第 12 章  SQL Server 应用程序开发

在数据环境中创建在数据环境中创建 ConnectionConnection 对象之后,对象之后,还必须设置它的连接属性,以指定所用的还必须设置它的连接属性,以指定所用的 OOLE DBLE DB 提供程序以及要访问的数据库等。提供程序以及要访问的数据库等。

  步骤步骤 在数据环境设计器窗口中,单击相应的在数据环境设计器窗口中,单击相应的 CoCo

nnectionnnection 对象。对象。 单击工具栏上的“属性”按钮,或者右击数单击工具栏上的“属性”按钮,或者右击数

据环境设计器窗口,然后从快捷选单中选择据环境设计器窗口,然后从快捷选单中选择“属性”命令。“属性”命令。

在“数据链接属性”对话框的“提供者”选在“数据链接属性”对话框的“提供者”选项卡中,选择项卡中,选择 Microsoft OLE DB ProvideMicrosoft OLE DB Provider for SQL Serverr for SQL Server 作为作为 OLE DBOLE DB 提供程序提供程序 ..

Page 98: 第 12 章  SQL Server 应用程序开发

在“数据链接属性”对话框的“连接”选在“数据链接属性”对话框的“连接”选项卡中,选择或输入运行项卡中,选择或输入运行 SQL ServerSQL Server 实例实例的服务器名称,输入登录该服务器的信息,的服务器名称,输入登录该服务器的信息,在该服务器上选择所要访问的数据库,然在该服务器上选择所要访问的数据库,然后单击“确定”按钮,将所设置的属性应后单击“确定”按钮,将所设置的属性应用于用于 ConnectionConnection 对象,并关闭对话框对象,并关闭对话框 ..

Page 99: 第 12 章  SQL Server 应用程序开发

3.3.  创建 创建 CommandCommand 对象对象 CommandCommand 对象定义了从一个数据库连接中获取何种对象定义了从一个数据库连接中获取何种

数据的详细信息。数据的详细信息。 CommandCommand 对象既可以基于一个对象既可以基于一个数据库对象(例如一个表、视图或存储过程),也可数据库对象(例如一个表、视图或存储过程),也可以基于一个以基于一个 SQLSQL查询。此外,还可以创建查询。此外,还可以创建 CommanCommandd 对象之间的关系来以层次结构的形式获取一组相关对象之间的关系来以层次结构的形式获取一组相关的数据。但要注意的是,要想使一个的数据。但要注意的是,要想使一个 CommandCommand 对对象有效,必须和一个象有效,必须和一个 ConnectionConnection 对象相关联。对象相关联。

如果一个如果一个 CommandCommand 对象返回数据,则它是“记录对象返回数据,则它是“记录集返回”,返回的结果可以通过使用集返回”,返回的结果可以通过使用 DataEnvironmDataEnvironmentent 对象中的一个对象中的一个 RecordsetRecordset 对象进行访问。然而,对象进行访问。然而,如果一个如果一个 CommandCommand 对象不返回数据(例如执行一对象不返回数据(例如执行一个更新的存储过程或个更新的存储过程或 SQLSQL 文本),则它是“非记录文本),则它是“非记录集返回”。数据环境设计器自动地识别集返回”。数据环境设计器自动地识别 CommandCommand是否是记录集返回。可以通过使用“是否是记录集返回。可以通过使用“ CommandCommand 属属性”对话框中“高级”选项卡的“返回的记录集”复性”对话框中“高级”选项卡的“返回的记录集”复选框覆盖这个设置。选框覆盖这个设置。

Page 100: 第 12 章  SQL Server 应用程序开发

在运行时如何访问在运行时如何访问 CommandCommand 对象取决对象取决 CommaCommandnd 对象是否是记录集返回。如果对象是否是记录集返回。如果 CommandCommand 对对象是记录集返回,既可以将象是记录集返回,既可以将 CommandCommand 对象作为对象作为DataEnvironmentDataEnvironment 对象的一个属性,也可以作为对象的一个属性,也可以作为它的一个方法来进行访问。如果它是非记录集返它的一个方法来进行访问。如果它是非记录集返回,则回,则 CommandCommand 对象只能作为一个方法来访问。对象只能作为一个方法来访问。

任何时候都可以使用任何时候都可以使用 AddCommandAddCommand 函数,并且函数,并且它与其他对象的存在与否无关。然而,一个没有它与其他对象的存在与否无关。然而,一个没有与与 ConnectionConnection 对象关联的对象关联的 CommandCommand 对象是无对象是无效的。如果一个效的。如果一个 ConnectionConnection 对象在添加过程中对象在添加过程中可以被从当前焦点中标识出来,则可以被从当前焦点中标识出来,则 CommandCommand 对对象的象的 ActiveConnectionActiveConnection 属性就被设置到这个属性就被设置到这个 CoConnectionnnection 对象。如果一个对象。如果一个 ConnectionConnection 对象不能对象不能被标识,在将它与一个连接关联之前,被标识,在将它与一个连接关联之前, CommanCommandd 对象是无效的。对象是无效的。

Page 101: 第 12 章  SQL Server 应用程序开发

若要添加一个若要添加一个 CommandCommand 对象,请执行下对象,请执行下列操作之一:列操作之一:

在数据环境设计器工具栏中单击“添加命在数据环境设计器工具栏中单击“添加命令”按钮。令”按钮。

鼠标右键单击一个鼠标右键单击一个 ConnectionConnection 对象或您对象或您的数据环境设计器,并从快捷方式选单中的数据环境设计器,并从快捷方式选单中选择“添加命令”。选择“添加命令”。

添加一个添加一个 CommandCommand 对象之后,数据环境对象之后,数据环境的“概要型”视图就显示新的的“概要型”视图就显示新的 CommandCommand对象,该对象的默认名称为“对象,该对象的默认名称为“ CommanCommand”d” 和加在后面的一个数字,例如和加在后面的一个数字,例如 CommaCommand1nd1 。。

若要指定若要指定 CommandCommand 对象的属性,请执行对象的属性,请执行以下操作。以下操作。

Page 102: 第 12 章  SQL Server 应用程序开发

步骤步骤 右击右击 CommandCommand 对象,然后从快捷选单中选择“属性”命对象,然后从快捷选单中选择“属性”命

令,以访问“令,以访问“ CommandCommand 属性”对话框。属性”对话框。 选择“通用”选项卡,然后进行如下设置:选择“通用”选项卡,然后进行如下设置: 命令名称:将数据库对象的默认“命令名称”改为一个更命令名称:将数据库对象的默认“命令名称”改为一个更

有意义的名字。例如,如果有意义的名字。例如,如果 CommandCommand 对象是基于一个叫对象是基于一个叫做做 CustomersCustomers 的数据库表,可能想将的数据库表,可能想将 Command1Command1改为改为 CCustomersustomers 。。

连接:如果连接:如果 CommandCommand 对象是从一个对象是从一个 ConnectionConnection 对象的对象的快捷方式选单中创建的,快捷方式选单中创建的, ConnectionConnection 名称被自动地设置。名称被自动地设置。但也可以更改这个但也可以更改这个 ConnectionConnection 。。

数据库对象:从下拉列表中选择一个对象的名字。列出的数据库对象:从下拉列表中选择一个对象的名字。列出的对象来自连接,并且与选择的“数据库对象”类型匹配。对象来自连接,并且与选择的“数据库对象”类型匹配。

SQLSQL语句:如果选择该项作为数据源,在“语句:如果选择该项作为数据源,在“ SQLSQL语句”框语句”框中输入一个对您数据库有效的中输入一个对您数据库有效的 SQLSQL查询。若要建立此查询,查询。若要建立此查询,可以单击“可以单击“ SQLSQL生成器”按钮,以启动查询设计器 生成器”按钮,以启动查询设计器

Page 103: 第 12 章  SQL Server 应用程序开发

如果如果 CommandCommand 对象是基于一个参数化的查询或对象是基于一个参数化的查询或一个存储过程,它可能有一个参数集合。若要设一个存储过程,它可能有一个参数集合。若要设置参数属性,请在“置参数属性,请在“ CommandCommand 属性”对话框中属性”对话框中选择“参数”选项卡。选择“参数”选项卡。

(( 44 )使用“关联”、“分组”和“合计”选项)使用“关联”、“分组”和“合计”选项卡定义关系,并组织卡定义关系,并组织 RecordsetRecordset 中包含的数据。中包含的数据。

(( 55 )在“)在“ CommandCommand 属性”对话框中选择“高属性”对话框中选择“高级”选项卡,在该选项卡中设置高级属性,使数级”选项卡,在该选项卡中设置高级属性,使数据环境可以对据环境可以对 CommandCommand 对象属性和它产生的对象属性和它产生的 RRecordsetecordset 对象进行控制。对象进行控制。

(( 66 )单击“确定”按钮,将此属性应用于新的)单击“确定”按钮,将此属性应用于新的CommandCommand 对象,并关闭对话框。对象,并关闭对话框。

Page 104: 第 12 章  SQL Server 应用程序开发

12.312.3  使用 使用 ASPASP 开发开发SQL ServerSQL Server 应用程序应用程序

ASPASP (( Active Server PagesActive Server Pages )是一种服务器端)是一种服务器端脚本编写环境,可以用来创建和运行动态网页或脚本编写环境,可以用来创建和运行动态网页或WebWeb 应用程序。应用程序。 ASPASP 页可以包含页可以包含 HTMLHTML标记、标记、普通文本、脚本命令以及普通文本、脚本命令以及 COMCOM 组件等。为了扩组件等。为了扩展展 ASPASP 应用程序的功能,必须通过数据库访问组应用程序的功能,必须通过数据库访问组件实现对数据库的访问。数据库访问组件提供件实现对数据库的访问。数据库访问组件提供 AADODO 对象(对象( Active Data ObjectsActive Data Objects )对数据库的访)对数据库的访问。下面主要介绍问。下面主要介绍 ADOADO 对象模型中的三个主要对象模型中的三个主要对象,即对象,即 ConnectionConnection 对象、对象、 RecordsetRecordset 对象和对象和CommandCommand 对象,使用这些对象可以在对象,使用这些对象可以在 ASPASP 页面页面上实现对上实现对 SQL ServerSQL Server 数据库的访问。数据库的访问。

Page 105: 第 12 章  SQL Server 应用程序开发

12.3.112.3.1  使用 使用 ConnectionConnection 对象对象

ConnectionConnection 对象代表了打开的、与数据源对象代表了打开的、与数据源的连接,该对象代表与数据源进行的惟一的连接,该对象代表与数据源进行的惟一会话。如果是客户端会话。如果是客户端 // 服务器数据库系统,服务器数据库系统,该对象等价于到服务器的实际网络连接。该对象等价于到服务器的实际网络连接。使用该对象可以实现与使用该对象可以实现与 SQL ServerSQL Server 数据库数据库的连接,也可以通过的连接,也可以通过 SQL SQL 语句对所连接的语句对所连接的数据库进行各种操作。数据库进行各种操作。

Page 106: 第 12 章  SQL Server 应用程序开发

1.1.  创建数据库连接 创建数据库连接

  如果计划在  如果计划在 ASPASP 应用程序中对应用程序中对 WebWeb 服务器上的数服务器上的数据库进行访问,就要建立一个数据库连接。没有数据库据库进行访问,就要建立一个数据库连接。没有数据库连接,应用程序就无法知道在哪里找到数据库,也不知连接,应用程序就无法知道在哪里找到数据库,也不知道如何连接到数据库。下面介绍使用道如何连接到数据库。下面介绍使用 ConnectionConnection 对象对象建立数据库连接时用到的一些属性和方法。在使用建立数据库连接时用到的一些属性和方法。在使用 ConConnectionnection 对象之前,应使用对象之前,应使用 Server.CreateObjectServer.CreateObject 方法方法创建该对象的实例,语法格式如下:创建该对象的实例,语法格式如下:

                   <%<% Dim cnnDim cnn Set cnn=Server.CreateObject(“ADODB.Set cnn=Server.CreateObject(“ADODB.

Connection”)Connection”) %>%>

Page 107: 第 12 章  SQL Server 应用程序开发

2. 2. 使用使用 ConnectionConnection 对象执行对象执行 SQSQLL 查询查询

ConnectionConnection 对象主要用于打开与指定数据库的对象主要用于打开与指定数据库的连接。也可以使用该对象的连接。也可以使用该对象的 executeexecute 方法还能够方法还能够执行指定的查询、执行指定的查询、 SQLSQL语句、存储过程或特定提语句、存储过程或特定提供程序的文本等内容。供程序的文本等内容。 ExecuteExecute 方法的语法格式方法的语法格式有下列两种形式。有下列两种形式。

对于不按行返回的命令字符串:对于不按行返回的命令字符串: connection.execute commandtext, recordsafconnection.execute commandtext, recordsaf

fected, optionsfected, options 对于按行返回的命令字符串:对于按行返回的命令字符串: set recordset = connection.execute(commanset recordset = connection.execute(comman

dtext, recordsaffected, options)dtext, recordsaffected, options)

Page 108: 第 12 章  SQL Server 应用程序开发

12.3.2 12.3.2 使用使用 RecordsetRecordset 对象对象    RecordsetRecordset 对象表示的是来自基本表或对象表示的是来自基本表或

命令执行结果的记录全集。在任何情况下,命令执行结果的记录全集。在任何情况下,该对象所指的当前记录均为集合内的单个该对象所指的当前记录均为集合内的单个记录。使用记录。使用 RecordsetRecordset 对象可以操作来自对象可以操作来自提供程序的数据,通过该对象几乎可以对提供程序的数据,通过该对象几乎可以对所有数据进行操作。所有所有数据进行操作。所有 RecordsetRecordset 对象对象均使用记录(行)和字段(列)进行构造。均使用记录(行)和字段(列)进行构造。

Page 109: 第 12 章  SQL Server 应用程序开发

1.1.  创建和访问记录集 创建和访问记录集 在在 ASPASP 页面中,可以通过调用页面中,可以通过调用 ConnectioConnectio

nn 对象的对象的 ExecuteExecute 方法或方法或 RecordsetRecordset 对象对象的的 openopen 方法打开方法打开 RecordsetRecordset 对象,然后对象,然后使用使用 fieldsfields 集合和集合和 fieldfield 对象来访问数据,对象来访问数据,最后使用最后使用 closeclose 方法关闭方法关闭 RecordsetRecordset 对象。对象。

当调用当调用 ConnectionConnection 对象的对象的 ExecuteExecute 方法方法时,如果时,如果 CommandTextCommandText 参数指定按行返参数指定按行返回的查询,执行产生的任何结果将存储在回的查询,执行产生的任何结果将存储在新的新的 RecordsetRecordset 对象中。对象中。

Page 110: 第 12 章  SQL Server 应用程序开发

2.2.  设置游标特性和锁定类型 设置游标特性和锁定类型 创建记录集时,总是会使用某种特定的游创建记录集时,总是会使用某种特定的游标和锁定类型。只有使用适当的游标和锁标和锁定类型。只有使用适当的游标和锁定类型,才能很好地利用定类型,才能很好地利用 RecordsetRecordset 对象对象的某些属性。的某些属性。

使用使用 CursorTypeCursorType 属性可以指定打开属性可以指定打开 RecoRecordsetrdset 对象时应该使用的游标类型。对象时应该使用的游标类型。 RecorRecordsetdset 关闭时关闭时 CursorTypeCursorType 属性为可读写,属性为可读写,而而 RecordsetRecordset 打开时该属性为只读。打开时该属性为只读。

Page 111: 第 12 章  SQL Server 应用程序开发

CursorTypeCursorType 属性可以设置或返回下列值之一:属性可以设置或返回下列值之一: 0――0―― 表示仅向前游标(默认值),只能在记录表示仅向前游标(默认值),只能在记录

中向前滚动;中向前滚动; 1――1―― 表示键集游标,始终支持书签,允许表示键集游标,始终支持书签,允许 RecoReco

rdsetrdset 中各种类型的移动;中各种类型的移动; 2――2―― 表示动态游标,用于查看其他用户所作的表示动态游标,用于查看其他用户所作的添加、更改和删除,并用于不依赖书签的添加、更改和删除,并用于不依赖书签的 RecordRecordsetset 中各种类型的移动;中各种类型的移动;

3――3―― 表示静态游标,始终支持书签,并允许表示静态游标,始终支持书签,并允许 ReRecordsetcordset 中各种类型的移动。中各种类型的移动。

Page 112: 第 12 章  SQL Server 应用程序开发

3.3.  分页显示记录 分页显示记录 当在网页上显示数据库记录时,如果表中包含的当在网页上显示数据库记录时,如果表中包含的记录比较多,可以分页显示这些记录。即在一个记录比较多,可以分页显示这些记录。即在一个页面中显示一组指定数目的记录,并在该页面中页面中显示一组指定数目的记录,并在该页面中添加一些超链接,通过单击这些链接可以查看不添加一些超链接,通过单击这些链接可以查看不同的记录组。分页显示数据库记录时,将用到同的记录组。分页显示数据库记录时,将用到 ReRecordsetcordset 对象的下列属性。对象的下列属性。

使用使用 PageSizePageSize 属性设置或返回一个长整型值,属性设置或返回一个长整型值,以指定某页上的记录数,默认值为以指定某页上的记录数,默认值为 1010 。使用。使用 PagPageSizeeSize 属性可以确定组成逻辑数据页的记录数。属性可以确定组成逻辑数据页的记录数。在对数据进行分页显示时,该属性在在对数据进行分页显示时,该属性在 WebWeb 服务器服务器方案中非常有用,可以用来在某一时刻查看一定方案中非常有用,可以用来在某一时刻查看一定数量的记录。随时可以设置该属性,其值将用来数量的记录。随时可以设置该属性,其值将用来计算特定页第一个记录的位置。计算特定页第一个记录的位置。

Page 113: 第 12 章  SQL Server 应用程序开发

使用使用 PageCountPageCount 属性可以确定属性可以确定 RecordsetRecordset 对象中对象中数据的页数。“页”是大小等于数据的页数。“页”是大小等于 PageSizePageSize 属性设置属性设置的记录组。即使最后页不完整,由于记录数比的记录组。即使最后页不完整,由于记录数比 PagePageSizeSize值少,该页也会作为值少,该页也会作为 PageCountPageCount值中的附加页值中的附加页进行计数。如果进行计数。如果 RecordsetRecordset 对象不支持对象不支持 PageCountPageCount属性,该值为-属性,该值为- 11 ,以表明该属性无法确定。,以表明该属性无法确定。

使用使用 RecordsetRecordset 对象的对象的 AbsolutePage AbsolutePage 属性设置或属性设置或返回从返回从 11 到该对象所含页数(即到该对象所含页数(即 PageCountPageCount )的长)的长整型值。使用整型值。使用 AbsolutePage AbsolutePage 属性可以识别当前记属性可以识别当前记录所在的页码,可以使用该属性将记录集从逻辑上录所在的页码,可以使用该属性将记录集从逻辑上划分为一系列的页。每页的记录数等于划分为一系列的页。每页的记录数等于 PageSizePageSize ,,但最后一页除外,该页记录数可能比较少。提供程但最后一页除外,该页记录数可能比较少。提供程序必须支持该属性的相应功能才能使用该属性。序必须支持该属性的相应功能才能使用该属性。

与与 AbsolutePositionAbsolutePosition 属性一样,属性一样, AbsolutePage AbsolutePage 属性从属性从 11 开始并在当前记录为开始并在当前记录为 RecordsetRecordset 对象中的对象中的第一个记录时等于第一个记录时等于 11 。设置该属性可以移动到特定。设置该属性可以移动到特定页的第一个记录。页的第一个记录。

Page 114: 第 12 章  SQL Server 应用程序开发

12.3.3 12.3.3 使用使用 commandcommand 对象对象    commandcommand 对象定义了将对数据源执行对象定义了将对数据源执行

的命令,可以用于查询数据库表并返回一的命令,可以用于查询数据库表并返回一个记录集,也可以用于对数据库表进行增个记录集,也可以用于对数据库表进行增删改操作。当访问删改操作。当访问 SQL ServerSQL Server 数据库时。数据库时。commandcommand 对象多用于执行存储过程。 对象多用于执行存储过程。

Page 115: 第 12 章  SQL Server 应用程序开发

1.1.  使用 使用 commandcommand 对象的步骤对象的步骤

  当在  当在 ASPASP 页面中使用页面中使用 commandcommand 对象对象处理数据时,应首先设置命令类型、命令处理数据时,应首先设置命令类型、命令文本以及相关的活动数据库连接等,并通文本以及相关的活动数据库连接等,并通过过 ParameterParameter 对象传递命令参数,然后通对象传递命令参数,然后通过调用过调用 ExecuteExecute 方法来执行方法来执行 SQLSQL 语句或调语句或调用存储过程,以完成数据库记录的检索、用存储过程,以完成数据库记录的检索、添加、修改和删除等任务。添加、修改和删除等任务。

Page 116: 第 12 章  SQL Server 应用程序开发

2.2.  使用 使用 ParametersParameters 集合集合 commandcommand 对象具有由对象具有由 ParametersParameters 对象对象

组成的组成的 ParametersParameters 集合,集合, ParametersParameters对象代表与基于参数化查询或存储过程的对象代表与基于参数化查询或存储过程的 ccommandommand 对象相关联的参数或自变量。通对象相关联的参数或自变量。通过创建过创建 ParameterParameter 对象并添加到对象并添加到 ParametParametersers 集合中,可以向参数化查询传递所需要集合中,可以向参数化查询传递所需要的数据。的数据。

Page 117: 第 12 章  SQL Server 应用程序开发

3. 3. 使用使用 commandcommand 对象执行对象执行 SQLSQL查询查询

与与 ConnectionConnection 对象一样,使用对象一样,使用 commandcommand 对象对象也可以执行也可以执行 SQLSQL查询语句,以完成数据库记录的查询语句,以完成数据库记录的检索、添加、更改和删除操作。所不同的是,使用检索、添加、更改和删除操作。所不同的是,使用commandcommand 对象执行对象执行 SQLSQL查询语句时,可以通过查询语句时,可以通过ParameterParameter 对象向参数化查询传递所需要的数据。对象向参数化查询传递所需要的数据。

从表中检索符合某种条件的记录时,可以将带有从表中检索符合某种条件的记录时,可以将带有 WWHEREHERE子句的子句的 SQL SELECTSQL SELECT查询语句作为查询语句作为 commcommandand 对象的命令文本,并使用某个参数定义对象的命令文本,并使用某个参数定义 WHEWHERERE子句的匹配条件,也就是用问号“?”表示字子句的匹配条件,也就是用问号“?”表示字段值,这种查询称为参数化查询。当使用段值,这种查询称为参数化查询。当使用 commacommandnd 对象的对象的 ExecuteExecute 执行命令时将返回一个记录集,执行命令时将返回一个记录集,执行命令时所需参数值可以通过执行命令时所需参数值可以通过 ParameterParameter 对象对象来传递。来传递。