VB6.0 中的几 个新增数 据库工具在使用以前版本的Visual Basic (或简称VB)开发应用程序时,程序开发人员通常需要同时打开两个 应用程序??Visual Basic和一个数据库管理程序(例如Access)现在,这些本来应该由数据库设计人员 完成的任务已经成为Visual Basic集成环境的一个部分,而且,在设计完成上述任务时,VB6.0提供的一 些数据工具在某些方面比数据库本身提供的工具还要好用得多例如,我们在使用Microsoft SQL Server6.5 提供的数据库工具进行数据库结构设计时,就会发现,要更改某个已经建成的数据库表结构是一件非常麻 烦的事情但利用VB6.0提供的数据视图(Data View)却象使用Access数据库一样方便下面,我就根 据自己的应用体会,谈谈VB6.0的新增数据库工具的特点及使用方法本文所举的例子用到的语言是VB6.0 简体中文企业版,用到的数据库是 Microsoft SQL ServerData View (数据视图)窗口Data View窗口是VB6.0工作区的第一个组成元素,就象属性(Properities)窗口和工具栏一样,它 可以依附在VB6.0的工作区的边界上。
Data View的功能与VB中的可视化数据管理器(VisData)有点相 似可以从工具栏或“视图”菜单打开Data ViewData View窗口显示当前为数据库建立的所有连接,以及加入到数据库中的数据环境(Data Enviroment)连接有了 Data View,我们就可以创建并修改表和视图、数据库视图以及存储过程和触发 器等这样,我们在开发应用程序时,就不需要在VB和数据库管理程序之间来回切换,而是可以随时利 用这个窗口建立应用程序所需的各种数据连接和数据环境,并对数据库表和查询等进行创建和修改同时, 还可以使用VB6.0所提供的其他工具,很方便地把浏览窗口中的数据字段拖到查询设计器(Query Designer)和数据报表设计器(Data Report Designer)窗口中,从而很容易地建立一个查询或报表下面举一个新建“Microsoft SQL Server”数据视图的例子在执行下列步骤之前,需要在控制面板中的 “32位ODBC数据源"中建立一个与SQL Server数据库连接的“系统数据源”(System Data Sources)假 设我们已经建立了一个有关资金管理系统库的链接“DSN_Funds”。
单击“视图”菜单,并选择“数据视图窗口”命令;*在“数据链接属性”(Data Link Properties)窗口的“提供方”(Provider)标签中选择“Microsoft OLE DB Provider for ODBC Drivers”,单击“继续” (Next〉>)进入“连接”(Connection);*在“连接”标签中,使用“指定数据源”(Specify the sources of data)项,再选择使用数据源名”(Use data source name),单击下拉选择框,并选择我们已经建立的系统数据源“DSN_Funds”;如果要检测连 接情况,可以单击“测试连接”(Test Connection),如果出现测试连接成功的提示,说明连接正确 按“确定”就完成了一个“数据视图窗口”的建立这时,在数据视图窗口的“数据链接”下会出现 “DSN_Funds”Data Environment Designer (数据环境设计器)Data Environment是VB6.0提出的一个新概念,也是本文将要介绍的重点它可以将许多单独使用的 对象和控件组合成一个单独的环境,建成后的这个数据环境可用来访问任何数据库、查询或加入其中的存 储过程。
这样,我们就不用再担心程序中有多处地方用到了某个数据库的引用,只需作一处改动,应用程 序中的其他有关地方也会作出相应变动这就给我们开发应用程序带来极大的方便从某种角度看,Data Environment 的作用相当于一个通用的 Data 控件,它可以在任何情况下使用,可以连接到所有的数据库、 表以及只含一个查询或表的对象上,而不仅仅局限于连接到某个查询或表上数据环境设计器为我们提供了一种可以很容易访问 VB 工程中数据的方式在以前的版本中,在设计 时使用ActiveX UserConnection设计器创建远程数据对象(Remote Data Objects)(RDO)现在,我们 可以在设计时使用数据环境设计器创建ADO对象数据环境设计器除了支持UserConnection设计器的所 有功能外,还支持:1) Connection、Command和Multiple Connection (多连接,即在一个数据环境中访 问多个数据源)对象;2) OLE DB数据源和ODBC数据源3)拖放功能,即从数据环境设计器中拖动字 段和表到一个窗体或数据报表ActiveX(Data Report ActiveX)设计器中,在窗体中自动地创建数据绑定 控件。
4)执行包含在数据环境中、作为编程的运行时方法的 command 5)对绑定到窗体中控件的数据 环境进行编程访问 6)关联 Command 对象创建一个关系层次结构的能力,或对 Command 对象分组 创建一个分组层次结构的能力,以及创建合计的能力和手工绑定数据识别控件到一个 Command 对象中的 Field 对象的能力 7)数据环境扩展性对象模型,该模型允许您创建外接程序这些外接程序可以通过编 程操作 Visual Basic 工程中的任何 DataEnvironment 对象下面将介绍如何在 VB 工程中创建一个数据环境对象,以及如何在应用程序中使用数据环境中的对象假如我们要创建一个DataEnvironment (数据环境)用来访问Microsoft SQL Server中的资金数据 库??DSN_Funds这个数据环境对象将作为VB工程的一部分被保存到文件中,文件的扩展名为.DSR, 该扩展名代表设计工具在可以访问数据环境设计器之前,必须在 Visual Basic 中引用它要引用数据环境设计器,请按照以 下步骤执行:* 在“工程”菜单中,单击“引用..."从“引用..."对话框中,选择"Microsoft Data Environment 1.0",然后单击"确定"。
要添加一个数据环境设计器对象到一个 VB 工程,请按照以下步骤执行:*从“新建工程”对话框的“新建”选项卡中,选择“标准EXE"工程,然后单击“打开”从“工程"菜单中,选择“更多ActiveX设计器…"中的“Data Environment"一旦在VB工程中添加了一个数据环境(DataEnvironment1),数据环境设计器就自动地包括一个新 的连接(Connection"在设计时,数据环境打开连接并从该连接中获得元数据,包括数据库对象名、表 结构和过程参数我们使用下面的步骤来指定数据环境中新建Connection对象的属性在VB "属性”窗口中,可以将缺省的“名称”更改为一个更有意义的名字例如,数据源是SQL Server DSN_Funds 数据库,就可以将 Connection1 更改为“Cnt_DSN_Funds"用鼠标右键单击Connection对象并选择“属性”,以访问“数据链接属性”对话框 进入 “ 数据链接属性 ” 对话框,在 “ 提供方 ” 选项卡中选择 “Microsoft OLE DB Provider for ODBC Drivers”,在“连接”选项卡中指定数据源“DSN_Funds”。
单击“确定”还有一个更简便的方法来建立一个新的连接即从“数据视图”窗口中将一个连接拖动到数据环境设计 器,自动地创建 Connection 对象对于在“数据视图”中已存在的 Connection 对象,用这种方式创建 Connection 对象是非常容易和高效的设定完Connectionl的属性后,就可以在这个连接对象中创建命令(Command)对象了Command 对象定义了从一个数据库连接中获取何种数据的详细信息Command对象既可以基于一个数据库对象(例 如:一个表、视图、存储过程),也可以基于一个结构化查询语言(SQL)查询要创建一个 Command 对象,可以采用以下步骤或方法:* 在数据环境设计器工具栏中单击“添加命令”或右键单击一个 Connection 对象或数据环境设计器, 并从快捷方式菜单中选择“添加命令” 一旦一个 Command 对象被添加,数据环境视图就显示新的 Command 对象这个对象的缺省名 字是“Command"和加在后面的一个数字,例如:Commandl指定Commandl对象的属性即右键单击Connectionl对象并选择“属性”访问“Command属性” 对话框。
在对话框中,有“通用”、 “关联”、 “分组”和“合计”选项卡,分别定义该数据库来源、连接属性及关 系等,并组织 Recordset 中包含的数据而“高级”选项卡则可以改变在运行时获取或操作数据的方式还有一种更为快捷的方法创建 Command 对象,就是从一个“数据视图”中拖动一个表、视图或存储过 程到数据环境设计器自动地创建 Command 对象由“数据视图”中列出的表、视图或存储过程来创建 Command 对象是一种简单和高效的方法如果与被放下的 Command 对象相关联的 Connection 在数 据环境中不存在,则自动创建一个 Connection 对象在运行时,数据环境对在数据环境设计器中定义的每一个 Command 和 Connection 对象创建 ADO Command 和 Connection 对象如果 Command 对象被标记为 Recordset Returning (在“Command Properties"对话框的“高级”选项卡中),那么也创建一个ADO Recordset对象ADO Command对象是 作为数据环境运行时对象的一个方法被添加的,而 ADO Connection 和 Recordset 对象是作为属性被添 加的。
在数据环境中,ADO Recordset对象的名字是以“rs"开头的,以便将它们和它们对应的Command对 象区别开来例如,一个名为“用户”的Command对象创建一个名为“rs用户"的Recordset对象在 缺省情况下, Recordset 对象是关闭的当 Recordset 对象的对应的 Command 方法执行时, Recordset 对象打开在运行时,应用程序可以通过两种方式使用数据环境:1. 作为绑定到窗体控件中数据的一个直接数据源假设我们要将数据环境对象中一个"用户"Command对象的字段"用户名"绑定到窗体中的一个TextBox 空间中去,则需要执行下列步骤:* 先将一个 TextBox 控件放到 Visual Basic 窗体中;*在"属性"窗口中,单击Datasource (“数据源")属性,并选择您想绑定到控件的DataEnvironment对 象,如"DadaEnvironmentT;*单击DataMember属性,并选择数据环境中的Command对象"rs用户";*单击DataField属性,从绑定到控件的"rs用户"Command对象中选择字段"用户名”。
这样,就完 成了绑定工作还有一种更快捷、简便的方法,就是将需要绑定的Command对象拖到窗体中,则窗体就会自动生成 这个对象所有字段的标签(Label)名和数据操作和显示区(TextBox)2. 编程访问数据环境设计器中的对象假设要从一个 Visual Basic 窗体中编程访问数据环境中的对象"用户"记录,则照以下步骤执行(这个 示例假定没有参数与 Command 对象相关联 在窗体中建一个 Command 按钮 假设附加到这个按钮的代码是用于将"用户"表中的记录向后移动则在按钮的 Click 事件中添加下 面的代码:DataEnvironment1. rs 用户.MoveNext从这上面例子可以看出,与一个ADO Recordset关联的所有方法都可以应用于rs用户,例如添加、 更新、删除和遍历记录的方法从上面的例子及说明可以看出,VB中的数据环境就象一个大的数据控件一样,它可以在不同的窗体中 引用和操作这对于我们开发应用程序来说,无疑是提供了一个很好的数据工具Query Designer (数据查询设计)Query Designer用来设计查询,并把设计出来的查询保存到数据库中。
与编写普通的SQL代码相比, 使用Query Designer的好处是查询经过数据库的编译以后运行速度将加快这里,查询也可以带参数,用 来在运行时填充数据这种设计思想可以用来创建通用查询以读取一个单独的记录,而不必为每个可能的 ID 记录号单独准备一个独立的查询查询设计器不但包含可视地显示查询的图形窗格,也包含显示查询的 SQL 文本的 SQL 窗格可以 在图形化的或 SQL 窗格中工作,查询设计器将保持两种视图的同步,以使它们总是当前的另外,查询 设计器能识别 Microsoft(R) SQL Server(TM) 和 Oracle 数据库之间的差别,因此它能生成并识别数据库 特有的 SQL 命令如果向查询中添加一个以上的表,查询设计器会自动确定这些表如何关联,并且在查 询中构造合适的联结命令我们可以使用查询设计器的SQL SELECT命令返回数据,也可以创建更新、 添加或删除数据库中记录的查询还可以执行查询及处理网格中的记录集打开Query Designer的方法很简单,只要在数据视图(Data View)中的"数据链接"或"数据环境连接” 下有一个链接或数据环境,就可以找到视图(View),然后用鼠标右键单击“视图”,出现一个弹出式菜单, 选择“新建视图(N) ”即可。
然后到数据视图中将查询涉及到的表(Tables)拖到Query Designer中,定 义查询条件和显示字段即可建立一个新的查询这种查询建立的方法与Access非常相似Data Report Designer (数据报表设计器)Data Report Designer是VB6.0众多新增功能中最有用的一个功能有了它,我们就可以在VB中创 建简单的报表,而不是寻求第三方的软件支持了另外,我们可以在程序中使用代码来调用刚创建的报表 对象用过Access报表设计工具的人再使用VB6.0中的Data Report Designer,就会感觉它功能更加强大, 而且使用方便它支持页面、报表头、记录行以及其他一些常用的功能,如支持不同的图形和字体等虽 然这种报表设计器不能完全取代第三方报表设计工具,但对于一些常用的报表来说,有了它就可以很方便 地在VB中设计了报表设计器必须有数据环境(Data Environment )的支持才能使用因为报表设计中的数据来源与数 据环境报表设计器主要有以下功能特点:1. 对字段的拖放功能??把字段从 Microsoft 数据环境设计器拖到数据报表设计器当进行这一操作 时, Visual Basic 自动地在数据报表上创建一个文本框控件,并设置被放下字段的 DataMember 和 DataField属性。
也可以把一个Command对象从数据环境设计器拖到数据报表设计器在这种情况下,对 于每一个 Command 对象包含的字段,将在数据报表上创建一个文本框控件;每一文本框的 DataMember 和 DataField 属性将被设置为合适的值2. Toolbox 控件??数据报表设计器以它自己的一套控件为特色当数据报表设计器被添加到工程时, 控件被自动创建在一个名为DataReport的新“工具箱”选项卡上多数的控件在功能上与Visual Basic内 部控件相同,并且包括Label、Shape、Image、TextBox和Line控件第六个控件,即Function控件, 自动地生成如下四种信息中的一种:Sum、Average、Minimum或Maximum3. 报表打印及预览??通过使用 Show 方法预览报表然后生成数据报表并显示在它自己的窗口内; 通过调用 PrintReport 方法,以编程方式打印一个报表当数据报表处于预览方式,用户也可以通过单击 工具栏上的打印机图标打印报表4. 文件导出??使用 ExportReport 方法导出数据报表信息导出格式包括 HTML 和文本可以创建 一个文件模板集合,以同 ExportReport 方法一起使用。
这对于以多种格式(每种都报表类型剪裁)导出报表是很有用的5.异步操作??DataReport对象的PrintReport和ExportReport方法是异步操作使用ProcessingTimeort 事件可以监视这些操作的状态,并取消任何花费时间过长的操作要创建一个报表,可以采取以下步骤:*在“工程”菜单上,单击“添加Data Report"如果设计器不在“工程”菜单上,单击“工程”菜单中的“部 件”再单击“设计器"选项卡,选择“Data Report"设置DataReport对象的属性在属性”窗口上,单击“数据源”,假如选择“DSN_Funds"然后单击 “DataMember"并选择“用户" 右键单击数据报表设计器,并单击“检索结构” 则我们已经向报表设计器添加了一个新的分组每 一个分组都同数据环境中的 Command 对象有“一对一”对应关系;在这种情况下,新的分组与客户的 Command 对象相对应从数据环境设计器,把“所在部门"字段(在“用户"命令下)拖到分组标头(用户_Header)部分分 组标头部分可以包含“用户”命令的任何字段,然而,出于演示目的,此时只显示“用户”名删除名为“Labell"的Label控件(rptLabel)。
如果不希望Label控件包括在TextBox控件中, 可以在数据环境设计器的“选项…"对话框的“字段映射"选项卡上撤消对“Drag and Drop Fields Caption"选项 的选择从数据环境设计器中,把“用户名"、“注册日期”、“口令”、“权限”字段拖到细节(Orders_Detail)部 分并删除所有Label控件细节部分表示最内层的“重复"部分,因而与数据环境层次结构(OrdersCommand 对象)中最底层的 Command 对象相对应 重新调整数据环境设计器部分的大小重新调整细节部分的高度,使它尽可能的矮是很重要的,因为高度将会与为每一个“部门”返回的细节(即“用户名”、 “注册日期”、 “口令”、 “权限”)相乘细节部分的文本框下面或上面的任何多余位置将在最后的报表中导致不必要的空间 保存工程Visual Basic6.0 与以前版本的最大不同之处就是在数据库功能上有一个更大的提高这也是微软公司 为加强其在企业开发工具地位上的重要内容应该说,在开发大中型企业应用软件上,Visual Basic6.0的 确是最强的软件之一相信大家在不断使用过程中会有更深的体会以上内容由华夏名网搜集整理。