С++, работающий с базой данных mdb

Я хочу создать приложение на основе содержимого файла .mdb, я искал библиотеки, чтобы сделать это в родном коде, но все они нуждались в требованиях, мне нужен способ читать эти файлы, используя только собственный код (С++), чтобы я мог использовать библиотеку на нескольких платформах.

Спасибо, С уважением


person Eph Bee    schedule 11.05.2015    source источник
comment
Вы можете загрузить исходный код Jackcess с здесь, а затем перенести код с Java на С++. Удачи с этим.   -  person Gord Thompson    schedule 11.05.2015
comment
Маловероятно, что вы сможете использовать базы данных MS Access на платформах, отличных от Windows.   -  person πάντα ῥεῖ    schedule 11.05.2015
comment
@πάνταῥεῖ — Jackcess делает это на чистой Java (на любой платформе), так что это возможно , просто огромный объем работы.   -  person Gord Thompson    schedule 11.05.2015
comment
@ГордТомпсон, спасибо! Я дам ему попробовать.   -  person Eph Bee    schedule 11.05.2015


Ответы (1)


Формат файла .mdb относится к механизму базы данных Microsoft Access ("Jet"), который является собственностью и специфичен для Windows. (Кроме того, это развивающийся файловый формат, хотя сейчас он, похоже, не находится в активной разработке.) Существует один и единственный "правильный " способ его использования, а именно: использовать библиотеку Microsoft и окружающую среду в операционной системе Microsoft.

Если вам действительно необходимо использовать «файловый механизм SQL» «на нескольких платформах», то я настоятельно рекомендую вам вместо этого использовать формат файла базы данных, специально разработанный для таких целей. : SQLite.

Имейте в виду, это не одно и то же. Они являются продуктом двух совершенно разных команд дизайнеров, которые преследовали разные цели. Команда SQLite сознательно не придерживалась строго стандарта SQL. Но что они сделали, так это создали общедоступный (!) движок базы данных, который использует один файл и специально разработан для кроссплатформенности. Тем временем команда Jet разработала свой движок специально и исключительно для поддержки продуктов Access (и Excel) своей компании.

person Mike Robinson    schedule 11.05.2015
comment
спасибо за подробный ответ, но я знаю об этом, у меня уже есть база данных .mdb, созданная кем-то другим, я не хочу создавать новую базу данных, мне нужен способ прочитать ее на С++ или хотя бы преобразовать в другой формат с кроссплатформенной библиотекой. - person Eph Bee; 12.05.2015
comment
Спасибо тебе за пояснение. SQLite был бы хорошим выбором, ИМХО, и один прагматичный способ сделать это - это... сделать как римляне. Сделайте этот шаг в Windows, используя MS-Access. Конечно, для SQLite есть драйвер ODBC/DAO. Затем возьмите этот переносимый файл и запустите его. Насколько мне известно, вы не можете читать или писать файл MDB (успешно) без использования библиотеки Jet в Windows. Итак... используйте этот инструмент в этой среде для однократного переноса файла в формат, который может переноситься. (Я бы не стал тратить время на кодирование на этом шаге.) - person Mike Robinson; 12.05.2015