0

我有一个与 Access 2000 数据库交互的 Delphi 2007 应用程序。我已经对数据库结构(添加字段)进行了更改,并且需要使它们在 Delphi 应用程序中可见,但事实证明这很困难。我做了一个最小的 Delphi 应用程序和 Access 数据库,在那里看到了同样的问题。

我的步骤是:

  • 使用 Field 1 和 Field2 创建 Access 数据库
  • 使用设置/控制面板/管理工具/数据源(ODBC 32 位)创建 MS 数据库的别名。
  • 创建一个 Delphi 应用程序。
  • TDBGrid在表单中添加一个
  • TDataSource在表格中添加一个
  • Datasource将网格的属性设置为DataSource1
  • TTable在表单中添加一个
  • Dataset属性设置TDataSourceTable1
  • DataBaseName属性设置Table1为为数据库创建的别名。
  • TableName属性设置为原始 Access 数据库中表的名称。
  • 将表的Active属性设置为 TRUE。最初在数据库中定义的所有字段都出现在网格中。问题是当我想稍后添加字段时。我可以通过从头开始重建整个事物,使它们在网格中显示为列,但必须有更简单的方法!

强制数据库结构更改到 Delphi IDE 和生成的应用程序的公认最佳实践是什么?

** 回答 Ken White 的评论 **

谢谢肯。当您可能不希望网格中的所有字段时,我很欣赏Columns属性的原因- 我的问题是,当我使用 MS Access 将一些字段添加到表中然后重新打开我的 Delphi 项目时:DBGrid

  • 如果我断开连接TTable并重新连接,该FieldDefs属性会显示添加的字段。都好。
  • 然后我转到 TDBGrid。显示的列不显示附加字段,仅显示原始字段。Columns集合是空的。
  • 当我检查Columns属性并尝试添加所有字段时,我只会得到原始字段。如果我尝试添加一个字段列,选择列表只会给我原始字段供我选择。

我不明白为什么TTable可以看到新字段但TDatasource(将 TTable 指定为其Dataset属性值)不能。

4

0 回答 0