Мы используем классы QtSql уже пару лет, в настоящее время мы используем драйвер ODBC для подключения к экземпляру MSSql. В целом весь интерфейс работает достаточно хорошо. Он полностью изолирует вас от драйвера базы данных QSqlDatabase
, QSqlQuery
и QSqlResult
на переднем крае, есть некоторые абстракции, которые также изолируют вас от фактических SQL QSqlTableModel
и QSqlRelationalTableModel
, но они предназначены для использования в любом из Qt просмотров. Существует также класс QDataWidgetMapper
, который помогает сопоставлять данные с не табличными представлениями. Также QVariant отлично справляется с обертыванием данных SQL и обеспечивает типизированный доступ к результату запроса. Хотя все это очень полезно, если ваше приложение не является небольшим по объему, оно не избавит вас от необходимости создавать достойный уровень DAO, ни один из классов Qt не обеспечивает этого.
У нас есть процесс, в котором мы превращаем пользовательское xml-описание в sql-скрипт для создания таблицы, класс-оболочку qt для QSqlRecord
, и мы используем QSqlTableModel
для большей части нашей работы с CRUD. Это работает достаточно хорошо, но в этих классах много работы, поэтому я бы не стал повторять этот подход.
Мы нашли некоторые причуды с драйвером ODBC, я уверен, что есть некоторые причуды с драйвером оракула. ОТО, мы достаточно уверены, что сможем переключиться с MS-SQL на ORACLE за короткий промежуток времени.
Что касается начальных точек, я думаю, что есть простой пример в примерах qt.