380 likes | 625 Views
第6章 数据环境. 本章学习要点 理解 Visual Basic 的数据环境对象 掌握创建 Visual Basic 数据环境对象的方法 掌握创建 Connectiong 对象和 Command 对象的方法. 使用数据环境设计器,可以完成下面的工作: 添加一个数据环境设计器到一个 Visual Basic 工程中。 创建 Connection 对象。 基于存储过程、表、视图、同义词和 SQL 语句创建 Command 对象。
E N D
第6章 数据环境 本章学习要点 • 理解Visual Basic的数据环境对象 • 掌握创建Visual Basic数据环境对象的方法 • 掌握创建Connectiong对象和Command对象的方法
使用数据环境设计器,可以完成下面的工作: • 添加一个数据环境设计器到一个 Visual Basic 工程中。 • 创建 Connection 对象。 • 基于存储过程、表、视图、同义词和 SQL 语句创建 Command 对象。 • 基于 Command 对象的一个分组,或通过与一个或多个 Command 对象相关来创建 command 的层次结构。 • 为 Connection 和 Recordset 对象编写和运行代码。 • 从数据环境设计器中拖动一个 Command 对象中的字段到一个 Visual Basic 窗体或数据报表设计器。
创建数据环境的方法 在访问数据环境设计器之前,必须先在 Visual Basic 中引用它,引用的步骤如下: 1.单击“工程→部件”菜单项,弹出“部件”对话框,选择“设计器”选项卡,如图所示。 2.“设计器”选项卡中选中“Data Environment”对象,然后单击“应用”按钮,此时,数据环境设计器添加到工程中。
要创建一个数据环境设计器对象到一个新的 Visual Basic 工程,执行方法有两种: 1.单击“工程→添加Data Environment”菜单项,弹出“数据环境设计器窗口”,在工程中创建了一个数据环境对象DataEnvironment1和一个Connection1对象,如图。
2.单击“视图→数据视图窗口”菜单项,弹出“数据视图”对话框,如下左图所示。单击“数据视图”窗口中的“添加数据环境到当前工程”按钮,创建一个默认名称为DataEnvironmentl的数据环境对象的同时,将同时弹出数据环境设计器窗口,表示这个新产生的对象已经加入到当前设计的工程里。如下图所示。一旦在工程中添加了一个数据环境设计器,就可以创建一个 Connection对象,然后对每个 Connection对象添加 Command对象
创建Connection 对象 除了创建数据环境对象时同时产生的Connectionl对象之外,也可以加入其它的Connection对象来连接不同的数据源,创建方法有两种: 1.选择DataEnvironment1对象,单击右键,执行弹出菜单的“添加连接”命令,可以在当前数据环境对象下创建新的Connection对象,其默认名依创建的先后顺序为Connectionl、Connection2 …依次类推,如图。
2.在上页图中,单击工具栏中的“添加连接” 按钮,也可以在当前数据环境对象下创建新的Connection对象。 创建的Connection对象还没有连接任何数据源,为了使Connection对象连接数据源,需要对其相应的属性进行设置,使得数据环境可以连接该数据源。
连接Connection 对象的数据源 连接Connection对象的数据源,通过设置属性来完成的,操作方法如下: 1.选择需连接数据源的Connection对象,单击鼠标右键,在弹出菜单中选择“属性”菜单项,弹出“数据链接属性”对话框。 2.在“数据链接属性”对话框中选择“提供程序”选项卡,根据数据源的不同类型,选择相应的提供程序,如图所示。
3. 在“数据链接属性”对话框中选择“连接”选项卡,输入要连接的服务器名称、登录用户名称和密码,以及要连接的数据库名称,如图示。 4.单击“测试连接”按钮,判断Connection对象是否连接到数据源,如果连上则弹出连接成功对话框,如图示。
创建Command对象 创建Command对象对应于某个Connection对象,创建的方法有两种:1.在数据环境设计器中选择某个, Connection对象例如Connectionl,单击鼠标右键,在弹出菜单中选择 “添加命令”菜单项,可以在当前Connection对象下创建新的Command对象,其默认名称依创建先后为Commandl、Command2依次类推,如图所示。2.在图中,单击工具栏中的“添加命令” 按钮,也可以在当前Connection对象下创建新的Command对象。
设置Command对象的属性 利用Command对象取得数据源的特定数据集,通过设置属性来完成的,操作方法如下。 1.选择刚创建的Command1对象,单击鼠标右键,在弹出菜单中选择“属性”菜单项,弹出“Command1属性”对话框; 2.在“Command1属性”对话框中选择“通用”选项卡,设置Command1对应的连接对象以及相关的数据源信息,如图示。
“通用”选项卡的主要设置项如下: (1)命令名称:指定当前Command对象的名称。 (2)连接:Command对应的Connection对象名。 (3)数据库对象:指定数据源的类型,包括三类:存储过程、表和视图。 (4)对象名称:指定数据源名称。 (5)SQL语句:在“SQL 语句”框中输入一个对数据库有效的 SQL 查询或者单击“SQL 生成器...”按钮启动查询设计器创建查询。
3.如果创建的Command对象是使用参数化的查询或者是带有参数的存储过程来取得数据,可以将这些参数加入到当前Command对象的Parameters集合对象中,定义这些参数的方法是打开“Command1属性”对话框的“参数”选项卡,如图所示。
“参数”选项卡的主要设置项如下: 1. 参数:该列表框包含与 Command 对象相关联的所有 Parameter 对象。选择一个参数并适当地编辑它的属性。 2. 参数属性:该框包含可以用来更改选定 Parameter 对象属性值的控件组。当没有 Parameter 对象被选定时,它是无效的。 3. 名称:Parameter 的名称。建议将这个名称改为一个更有意义的、唯一的名称。 4. 数据类型:指定一个数据环境 Parameter对象被转换到的数据类型。
5. 方向:指定参数是输入还是输出参数,或两者都是,或参数是否是一个过程的返回值。从组合框中选一个:“输入”、“输出”、“输入和输出”、“返回值”或“未知”。 6. 精度:数据环境 Parameter 对象的最大位数或精度。该项仅适用于数值字段,当参数是一个非数值类型时它是无效的。 7. 缩放:一个数据环境 Parameter 对象小数点后的最大位数。该项也仅适用于数值字段,当参数是一个非数值类型时它是无效的。
8. 大小:Parameter 的最大尺寸(以字节为单位)。 9. 主数据类型:当 Parameter 对象被主应用程序引用时使用的数据类型。更改主应用程序的数据类型将影响到生成主应用程序类型库信息使用的数据类型。 10. 所需的:当选定该项时,它指示当执行 Command 对象时,某个参数值是必需的。 11. 值:Parameter 对象的一个值。数据环境将该值用于设计时数据绑定和运行时 Command 对象的执行
4.“Command 属性”对话框包含六个选项卡。“通用”、“参数”和“高级”选项卡用于设置 Command 和 Parameter 对象的属性,而“关联”、“分组”和“合计”选项卡用于设置 Command 层次结构所特有的属性。 可以建立的层次结构包括:关系层次结构、分组层次结构和合计计算。而关系层次结构也就是在Command 对象中还包括Command 对象,也就是子命令 对象。
创建子命令对象的方法是选择刚创建的Command1 对象,单击鼠标右键,选择“添加子命令”菜单项,添加后的父子命令对象结构如右上图所示。 父子命令对象的相应属性是在“Command2属性”对话框的“关联” 选项卡中设置,如右下图所示。
“关联”选项卡的主要设置项如下: (1)父命令:设置父命令对象的名称。 (2)父字段:设置关联的父字段名称。 (3)子字段/参数:设置关联的子字段名称。 (4)添加:单击“添加”按钮后建立关联 (5)删除:在列表中选择已建立的关联,单击“删除”按钮后删除。
5.通过对一个 Command 对象分组,可以创建一个 command对象的层次结构。当一个 Command 对象被分组时,分组的字段被添加到一个 Grouping Command 对象,该对象变成原来 Command 对象的父对象。在产生的记录集中,对分组字段的每一组唯一值,Grouping Command 对象包含一行。要创建Command 对象的分组层次结构,需对“Command1属性”对话框的“分组” 选项卡进行设置,如图示。
“分组”选项卡的主要设置项如下: (1)分组命令对象:当选中了该复选框后才会创建分组命令对象。 (2)分组定义:该框包含分组层次结构的属性。如果没有选定“分组命令对象”,该框中的内容无效。 (3)分组命令名称:指定分组对象的名称。 (4)命令中的字段: 显示当前命令对象的所有字段。 (5)箭标:四种类型的箭标 (6)用于分组的字段:选择要用的分组字段。
6.合计是一种特殊类型的 Field 对象,可以基于一个 Command 对象的层次结构使用该对象自动地计算数据。可以在任何关系或基于分组的层次结构上定义一个合计。定义的每一个合计添加一个新的 Field 对象到当前的 Command 对象。在程序运行时,可以象访问其它的字段一样访问计算的数据。此外,还可以创建一个 Grand Total Aggregate,它可以应用于任何最高层的 Command 对象来计算它的值。
当创建一个 Grand Total Aggregate 时,一个新的 Command 对象作为在其上计算值的 Command 对象的父对象被创建。因此,现存的 Command 对象变成一个子 Command 对象,并且通过父 Command 对象中的一个字段被引用。要创建Command 对象的合计对象,需对“Command1属性”对话框的“合计” 选项卡进行设置,如图
“合计”选项卡的主要设置项如下: (1)添加按钮:单击“添加”按钮,添加新的合计。 (2)删除按钮:在列表框中选择相应的合计名称,单击“删除”按钮将其删除。 (3)合计:合计对象列表框。 (4)名称:将被添加到 Command 对象的 Field 对象的名。在运行时,该字段将包含计算出的合计值。 (5)功能:在下拉式列表框中选择要执行的运算类型。如下页表格
(6)合计:从下拉列表中选择一个分组、一个子 Command 对象或 GrandTotal。根据选择的项目进行合计。其中,GrandTotal 只有在最高层 Command 对象才可以使用。选择 GrandTotal 意味着将创建一个附加的 Command 对象来提供数据的一个总计。 (7)字段:选择一个要合计的Field 对象。 (8)汇总命令:如果在“合计”框中选择了“GrandTotal”,则为“汇总命令”指定一个名字。如果“GrandTotal”没有被选择,该选项是失效的。一旦被创建,“GrandTotal Name”就作为数据环境中的一个新的最高层 Command 对象的名字显示。
7.打开“Command1属性”对话框的“高级”选项卡,其中主要设置关于处理记录集的信息,以及Command对象其它一些属性的设置,如图所示。
“高级”选项卡的主要设置项如下: (1)游标类型:设置用于Command对象的游标类型,包含四个取值:0. 缺省设置;1.键集;2.动态;3.静态。 (2)锁定类型:指定当Command对象启动时的锁定类型,包含四个取值:1.只读,缺省设置;2.保守式;3.开放式;4.开放式批处理。 (3)游标位置:设置游标引擎的位置,两个取值:1.使用服务器端游标;2.使用客户端游标。 (4)缓存大小:设置缓存在本地内存中的当前Command对象的记录数量,缺省是10个数据记录集。 (5)返回的记录集:该复选框设置该查询操作是否返回数据记录集。
(6)命令超时:设置Command对象无法执行时的超时秒数,缺省设置是30秒。(6)命令超时:设置Command对象无法执行时的超时秒数,缺省设置是30秒。 (7)执行前准备:该复选框用来确定查询是否已准备好使用 SQLPrepare或 SQLExecDirect ODBC API 函数。缺省设置是True 。当设置这个属性为 False时禁止查询的“准备”。在这种情况下,该查询执行时使用 SQLExecDirect API 。 (8)所有记录:该复选框用来确定配置的记录是否为所有记录。 (9)最大记录:当“所有记录”复选框取消选取,设置从一个数据来源可返回数据记录的最大数量,缺省设置是0,即没有上限; (10)调用语法:显示用于调用存储过程的调用语法,可以编辑它来修改参数的数量和返回值。
“企业资质管理系统”数据环境的设计 在“企业资质管理系统”中由于设计报表的需要,在“企业资质管理系统”中需首先创建数据环境对象,创建步骤如下。 1. 创建数据环境对象和Connection对象 在已打开的工程中,单击“工程→添加Data Environment”菜单项,创建了数据环境对象DataEnvironment1,同时创建了Connection1对象。
2.连接Connection1对象的数据源 (1)选中Connection1对象,单击鼠标右键,在弹出菜单中选择“属性”菜单项,弹出“数据链接属性”对话框; (2)在“数据链接属性”对话框中选择“提供程序”选项卡,本系统的数据源类型为SQLServer,因此选择相应的提供程序,如图
(3)在“数据链接属性”对话框中选择“连接”选项卡,输入本系统所要连接的服务器名称、登录服务器的用户名称和密码,以及要连接的数据库名称,如图(3)在“数据链接属性”对话框中选择“连接”选项卡,输入本系统所要连接的服务器名称、登录服务器的用户名称和密码,以及要连接的数据库名称,如图 (4)单击“测试连接”按钮,判断Connection1对象是否连接到数据源“zzdb”,如果连上则弹出连接成功对话框,单击“确定”按钮,完成Connection1对象的属性设置。
3.创建Command对象 (1)在数据环境设计器中选择Connection1对象,单击鼠标右键,在弹出菜单中选择“添加命令”菜单项,在Connection1对象下创建Command1对象。 (2)在“Command1属性”对话框中选择“通用”选项卡,选择它对应的数据库对象:表;对象名称:qyjbxx,也就是系统中的“企业基本信息”表,如图。
(3)在“Command1属性”对话框中选择“分组”选项卡,选中复选框“分组命令对象”,定义“分组命令名称”为“Command1_分组 ”,在“命令中的字段”众多的字段中选择“用于分组的字段”——“dj”(企业的资质等级),如图
(4)单击“Command1属性”对话框中的“确定”按钮,完成Command1对象的属性设置,如图所示。 (5)用上述同样的方法在Connection1对象中,创建其它5个Command对象,各个Command对象的属性设置如下页表格。
(6)数据环境设计器中的对象全部创建完毕,如图 (6)数据环境设计器中的对象全部创建完毕,如图
本章习题 1.简述Visual Basic数据环境对象的作用及创建方法。 2.简述创建Connetion对象的方法,如何连接数据源。 3.简述创建Command对象的方法,如何设置它的属性。 4.参照6.4节实例进行数据环境的设计。