问题描述
我有一个与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 (将#修改为@)