Мне нужно (программно) удалить таблицу из базы данных Microsoft Access (файл .mdb
в формате 2002-2003). Когда я удаляю таблицу, мне нужно удалить все внешние ключи. Внешние ключи были созданы с разными именами, поэтому мне нужен способ перебрать их, чтобы удалить.
FireDAC имеет компонент TFDMetaInfoQuery
с MetaInfoKind
из mkForeignKeys
. Я могу заставить это выполниться, но он никогда не возвращает никаких строк ни для всей базы данных, ни если я укажу .ObjectName
. В качестве теста я переключился на mkTables
, и данные возвращаются.
Я могу запросить отношения в Access с помощью таблицы MSysRelationships
, но когда я пытаюсь сделать запрос непосредственно из FireDAC, я получаю сообщение об ошибке:
Не удалось прочитать определения; нет разрешения на чтение определений для таблицы или запроса «MSYSRELATIONSHIPS»
Есть ли способ:
Удалить таблицу в Microsoft Access и заставить ее одновременно удалять внешние ключи?
Перебирать внешние ключи, указывающие на данную таблицу, чтобы я мог их удалить сам?
Или есть ли другой способ удалить эту таблицу, который я не рассматриваю? Если нужно, я могу получить TADOConnection
, но я тоже не видел никакого способа помочь.