科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道从Linux上的DB2表生成动态数据表单 (2)

从Linux上的DB2表生成动态数据表单 (2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在本文中,为了动态构建视图和表单,我将检查 ® DB2® Universal Database™ (UDB) 元数据。特别是,我将使用 Linux 上的 ® Kylix 3™ 和 Borland dbExpress 数据访问驱动程序,来分析 DB2 UDB 数据库表、字段(名称和类型),以允许用户选择特定的表、

作者:yuansang 来源:赛迪网技术社区 2007年10月19日

关键字: 操作系统 表单 DB2 Linux

  • 评论
  • 分享微博
  • 分享邮件
 

分析字段定义

下一步取决于最终用户。为了选择特定的表,显示可用字段,最终用户必须双击 ListBox 控件中的表。这将激活一个事件处理程序,该程序采用 ListBox 中的表名,并为该表检索元数据。从元数据来看,您必须使用字段名的列表,将它们放置在第二个列表框 TCheckListBox 中。

为了做到这一点,您可以使用 TSQLDataSet 组件,将 CommandType 设置为 ctTable,并将 CommandText 设置为从第一个 TListBox 控件中选定的表的名称,该表可以在 ListBox1.Items[ListBox1.ItemIndex] 中找到。然后,一定不要激活(或者打开) TSQLDataSet,这一点很重要,因为它会将 select * 从您选定的表名发送到数据库,在此时,这项操作并不是您想要的。您应该调用 TSQLDataSet.FieldDefs.Update 方法,该方法只为字段定义检索元数据,没有为选定的表本身检索实际记录数据。

使用该字段定义元数据,您就可以遍历单独的字段定义,将字段的名称放置在 TCheckListBox 中(您还可以包括该字段的类型,但是,该类型您在下一步中才会用到,即,在为选定的字段创建适当的数据感知控件时才会用到)。

检索字段定义并更新 TCheckListBox 的源代码片段如下所示:

  
  procedure TForm1.SelectTableClick(Sender: TObject);
  var
  i: Integer;
  begin
  ClientDataSet1.Active := False;
  SQLDataSet1.CommandType := ctTable;
  if ListBox1.ItemIndex >= 0 then
  SQLDataSet1.CommandText := ListBox1.Items[ListBox1.ItemIndex];
  SQLDataSet1.FieldDefs.Update; // get meta information
  CheckListBox1.Clear;
  for i:=0 to Pred(SQLDataSet1.FieldDefs.Count) do
  CheckListBox1.Items.Add(SQLDataSet1.FieldDefs[i].Name)
  end;
  

注意,在添加新的字段名之前,应该清除 TCheckListBox,这样,最终用户就可以连续双击不同的表名,查看每次出现在 TCheckListBox 表中的新的字段列表。

以下截屏显示了第一次双击位于表单左边 TListBox 中的 EMPLOYEE 表的效果,然后,可以检查复选框,获得位于表单右边的 TCheckListBox 表中的前 11 个字段。

  

图 3. 元数据:表和字段

下一步是生成 SQL 语句,只选择指定表(本例中是 EMPLOYEE)中复选的字段,然后在数据格以及数据感知控件中显示结果。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章