微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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