如何解决使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 举报,一经查实,本站将立刻删除。