Мне интересно, какие решения для сохранения устойчивости существуют для C++ с базой данных SQL? В дополнение к работе с пользовательским SQL (и инкапсулированию доступа к данным в DAO или чему-то подобному), есть ли другие (более общие) решения?
Как некоторые общие библиотеки или фреймворки (что-то вроде Hibernate & co для Java и .NET) или что-то еще? (Можно также предложить то, о чем я даже не подумал)
Обновлено: Да, я больше искал решение ORM или что-то подобное для обработки запросов sql и отношений между таблицами и объектами, чем для самого механизма db. В любом случае спасибо за все ответы!





Похоже, вы ищете ORM, чтобы вам не пришлось возиться с написанным вручную кодом SQL.
Есть сообщение здесь, в котором рассматриваются решения ORM для C++.
Вы также не указали тип приложения, которое вы пишете, если это настольное приложение, мобильное приложение, серверное приложение.
Мобильный: лучше всего использовать SQLite в качестве движка базы данных, потому что он может быть встроен и занимает мало места.
Настольное приложение: вам все равно следует рассмотреть возможность использования SQLite здесь, но у вас также есть возможность с большинством настольных приложений иметь постоянное подключение к Интернету, и в этом случае вы можете предоставить сетевой сервер для этой задачи. Я предлагаю использовать Apache + MySQL + PHP и использовать легкий ORM, такой как Выходной ORM, а затем использовать стандартные вызовы HTTP post для доступа к вашим ресурсам.
Серверное приложение: у вас есть гораздо больше возможностей, но я все же предлагаю использовать Apache + MySQL + PHP + ORM, потому что я считаю, что поддерживать этот уровень на языке сценариев намного проще, чем на C++.
Ссылка на решения ORM для C++ мертва.
Я использую MYSQL или SQLite.
MYSQL: предоставляет базу данных на основе сервера, к которой ваше приложение должно динамически подключаться. SQLite: предоставляет базу данных в памяти или в файле.
Использование БД в памяти полезно для быстрой разработки, поскольку установка и настройка сервера БД только для одного проекта - большая задача. Но как только у вас есть запущенный сервер БД, его так же легко подать в суд.
БД в памяти полезна для хранения небольших БД, таких как конфигурация и т. д. Хотя для больших наборов данных, вероятно, более практичным будет сервер БД.
Скачать отсюда: http://dev.mysql.com/
Скачать отсюда: http://www.sqlite.org/
MySQL Connector / C++ - это реализация JDBC 4.0 на C++.
Эталонными клиентами, использующими MySQL Connector / C++, являются: - OpenOffice - MySQL Workbench
Подробнее: http://forums.mysql.com/read.php?167,221298
SQLite + Hiberlite - хороший и многообещающий проект. хотя я надеюсь, что он будет развиваться более активно. см. http: // code.google.com/p/hiberlite/
Вы забыли одну важную вещь: SQLIte бесплатен при использовании для любых целей.