Классы персистентности в QT

В C++ ISO нет никакого обязательства для перечисления, чтобы быть больше, чем его самый большой перечислитель требует. В частности, перечисление {ПРАВДА, ЛОЖЬ} может иметь sizeof (1) даже когда sizeof (bool) == sizeof (интервал). Нет просто никакого требования. Некоторые компиляторы делают перечисления тем же размером как интервал. Это - функция компилятора, которая позволяется, потому что стандарт только налагает минимум. Другие компиляторы используют расширения для управления размером перечисления.

8
задан zarzych 1 October 2009 в 18:37
поделиться

4 ответа

Насколько я знаю, нет ничего готового, что дает возможность напрямую в qt. Есть несколько возможных подходов.

  • Реализуйте поля как Q_PROPERTY, затем они отражаются через систему Metaclass и могут использоваться для реализации общих функций DAO.

  • Вы все еще можете использовать QSqlTableModel, но инкапсулировать записи с транзакциями, если транзакция не удалась, обновите модель из БД. Осуществимость зависит от размера данных, которые вы храните в модели.

В настоящее время мы используем подход на основе TableModel / QSqlRecord для чтения и записи, в нашей системе не выполняется сопоставление ORM.

5
ответ дан 5 December 2019 в 13:00
поделиться

Tegesoft недавно выпустила новую версию своей библиотеки под названием CAMP , которая обеспечивает отражение времени выполнения C ++, как вы используете в .Net. Я думаю, это позволит вам реализовать свое приложение, как в .Net.

2
ответ дан 5 December 2019 в 13:00
поделиться

Также имеется новая библиотека ORM C ++ с открытым исходным кодом: QxOrm . QxOrm основан на модуле QtSql Qt для связи с базой данных и boost :: serialization для сериализации ваших данных в xml и двоичном формате. Веб-сайт на французском языке, но быстрый пример кода и учебный код на английском языке (перевод находится в процессе ...).

2
ответ дан 5 December 2019 в 13:00
поделиться

Если вам нужен ORM, который зависит только от Qt и опирается на систему мета-объектов Qt для обеспечения интроспекции, вы можете попробовать QDjango. Помимо основных операций создания/обновления/удаления на уровне модели, он предоставляет класс шаблона queryset (по образцу querysets от django), который позволяет строить достаточно сложные поиски. Также ведется интеграция QtScript.

3
ответ дан 5 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: