Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101924041
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-14 13:16:01

  来源:ChinaITLab   

简介

在本文中,为了动态构建视图和表单,我将检查 ® DB2® Universal Database™ (UDB) 元数据。特别是,我将使用 Linux 上的 ® Kylix 3™ 和 Borland dbExpress 数据访问驱动程序,来分析 DB2 UDB 数据库表、字段(名称和类型),以允许用户选择特定的表、来回切换应该显示的字段,以及动态查看数据格和单独数据感知控件中的输出。

这是一种纯运行时方法;无需进行进一步编码。在后续文章中,我将使用 Borland Delphi™,通过动态生成表单,并在设计时将它们添加到项目中(用我们自己的数据库表单向导)来进一步介绍该方法。

从头开始

与前面介绍利用 Kylix 操作 DB2 的文章不同,在上一篇文章中,您已经在设计时使用 IDE 构建了整个应用程序,所以只需从连接 DB2 UDB 数据库开始即可。其他步骤都是在代码中完成的,都使用了从数据库自身中获得的元信息。

为了构建到 DB2 UDB SAMPLE 数据库的连接,需要使用 TSQLConnection 组件、开启新的 Kylix 3 项目,并将 TSQLConnection 组件放在表单上。可以右击 SQLConnection 组件来编辑连接属性。DriverName 应该是 DB2,Database 名称应该是 SAMPLE(或者其他任何数据库名 —— 本文中的代码将处理所有现有 DB2 UDB 数据库)。还需要指定 User_Name 和 Password;此外,需要在运行时将它们输入登录对话框中。可以通过单击“check”按钮来测试连接属性的有效性,随后,可以看见以下截屏:

 

 

图 1. 成功连接的 DB2Connection

设计时的准备

一旦正确设置了 TSQLConnection 组件,就可以添加其他 dbExpress 组件,并将它们彼此相连,但是,不需要指定 SQL 语句或添加任何视图数据感知控件。在添加第一个附加组件时,在表单上放置一个 TSQLDataSet 组件,添加下一个组件时放置 TSQLConnection 组件。将 TSQLDataSet 的 SQLConnection 属性指向 TSQLConnection 组件。然后,在表单上放置一个 TDataSetProvider,并将其 DataSet 属性指向 TSQLDataSet 组件。

该组件后面是 TClientDataSet 组件,其 ProviderName 属性被设置为 TDataSetProvider 组件的名称。最后,删除表单上的 TDataSource 组件,并将其 DataSet 属性连接到 TClientDataSet 组件。这将为您提供 TSQLConnection - TSQLDataSet - TSQLDataSetProvider - TClientDataSet - TDataSource 的链接,在使用包含 DB2 UDB 数据库表的 Borland dbExpress 之前,您可以看到该链接。

这次,主要的不同在于您不能在 SQLDataSet 组件内部指定 SQL 语句。也不能在表单上放置任何可视数据感知组件,因为所有这些操作都将在运行时动态完成,并且都是基于 DB2 UDB 数据库中发现的元数据以及用户对表和字段的选择。

为了将元数据信息和从动态视图中生成的选项与一个数据窗格以及一个数据控件分离,需要用到 TPageControl 组件,如下方截屏中所示:

  

图 2. 设计时的动态表单
阅读(282) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~