C++ манипулиране на mdb база данни

Искам да създам приложение въз основа на съдържанието на .mdb файл, потърсих библиотеки, за да направя това в нативния, но всички те се нуждаеха от изисквания, искам начин да чета тези файлове само с помощта на нативния код (C++), за да мога използвайте библиотеката в множество платформи.

Thx, Поздрави


person Eph Bee    schedule 11.05.2015    source източник
comment
Можете да изтеглите изходния код на Jackcess от тук и след това да пренесете кода от Java към C++. Късмет с това.   -  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
@GordThompson благодаря! Ще го пробвам.   -  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
thx за подробен отговор, но съм наясно с това, вече имам .mdb база данни, създадена от някой друг, не искам да създавам нова база данни, искам начин да я прочета на C++ или поне да я конвертирам в друг формат, който има библиотека между различни платформи. - person Eph Bee; 12.05.2015
comment
Благодаря за разяснението. SQLite би бил добър избор, IMHO, и един прагматичен начин да го направите би бил да ... правите като римляните. Направете тази стъпка в Windows, като използвате MS-Access. Има ODBC/DAO драйвер за SQLite, разбира се. След това вземете този вече преносим файл и стартирайте с него. Доколкото ми е известно, вие не можете да четете или пишете MDB файл (успешно), без да използвате библиотеката на Jet в Windows. И така... използвайте този инструмент, в тази среда, за еднократно прехвърляне на файла във формат, който е транспортируем. (Не бих губил време за кодиране на тази стъпка.) - person Mike Robinson; 12.05.2015