使用 FireDAC (JET) 删除 Microsoft Access DB 的表和外键

问题描述

我需要(以编程方式)从 Microsoft Access 数据库(2002-2003 格式的 .mdb 文件)中删除一个表。当我删除表时,我需要删除所有外键。外键是用不同的名称创建的,所以我需要一种方法来迭代它们以删除它们。

FireDAC 有一个 TFDMetaInfoQuery 组件,其 MetaInfoKindmkForeignKeys。我可以让它执行,但它永远不会返回任何行,无论是对于整个数据库还是如果我指定了 .ObjectName。作为测试,我切换到 mkTables 并且确实返回了数据。

我可以使用 MSysRelationships查询 Access 中的关系,但是当我尝试直接从 FireDAC 查询时,我收到一条错误消息:

无法读取定义;没有表或查询 'MSYSRELATIONSHIPS' 的读取定义权限

有没有办法:

  1. 在 Microsoft Access 中删除一个表并让它同时删除外键?

  2. 迭代指向给定表的外键,以便我可以自己删除它们?

或者,有没有其他我没有考虑的方法删除这张桌子?如果需要,我可以得到一个 TADOConnection,但我也没有看到任何有帮助的方法

解决方法

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

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

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