使Access数据库字段结构更改传播到Delphi应用程序

问题描述

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

我的步骤是:

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

什么是强制数据库结构更改到Delphi IDE及其结果应用程序的最佳实践?

**回答肯·怀特的评论**

谢谢Ken。当您可能不希望网格中的所有字段时,我感谢TableName的{​​{1}}属性的原因-我的问题是,当我使用MS Access将一些字段添加到表中然后重新-打开我的Delphi项目:

  • 如果我断开Active的连接并重新连接,则Columns属性显示添加的字段。一切都很好。
  • 然后我移到TDBGrid。显示的列不显示其他字段,仅显示原始字段。 DBGrid集合为空。
  • 当我检查TTable属性并尝试添加所有字段时,我只得到原始字段。如果我尝试添加一个字段`列,则选择列表只会给我原始字段供您选择。

我不明白为什么FieldDefs可以看到新字段,但是Columns(已将TTable指定为Columns属性值)却看不到。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)