Библиотека для сохранения объектов C ++ в базу данных - PullRequest
2 голосов
/ 19 марта 2012

В настоящее время я сохраняю свой граф объектов в XML-файле с расширенной сериализацией.Библиотека великолепна, она автоматически восстанавливает объекты и все указатели и ссылки на элементы.

Проблема: мне нужен произвольный доступ к данным (чтение только одного объекта или удаление только одного объекта).С ускоренной сериализацией сценарий выглядит следующим образом:

- загрузка всех объектов из файла

- использование и изменение объектов

- запись всех объектов в архив снова

Недостатком этого является то, что если изменился только один объект, я хочу записать в архив только этот объект, а не весь огромный граф объектов.

Поэтому я ищу библиотеку, которая поддерживаетхранит все объекты в базе данных, а также поддерживает типы boost и stl.В настоящее время я использую следующие типы буста:

  • мультииндекс буста

  • Smart Ptr (shared_ptr, weak_ptr, scoped_ptr)

  • необязательно, вариант

Кто-нибудь знает такую ​​библиотеку или что-то близкое к ней, или есть идеи, как решить эту проблему?

Ответы [ 3 ]

2 голосов
/ 19 марта 2012

Вы пробовали ODB? http://www.codesynthesis.com/products/odb/

2 голосов
/ 19 марта 2012

Это очень сложно сделать такую ​​вещь. Поскольку C ++ (среда выполнения) ничего не знает о себе, вы должны написать его самостоятельно. Мой совет - разбивать график на разные файлы и обновлять только те файлы, которые вам нужны (это означает, что вы должны сами управлять сериализацией, не используя boost lib).

1 голос
/ 08 июня 2012

Может быть Wt :: Dbo ?Добавляя одну функцию шаблона к вашим классам, Dbo отображает их в базу данных SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...