делайте, кто мешает то? ORM? Что за ORM такая? Нормальную ORM возьмите. DataMapper используйте, если ORM такая хрупенькая.
bool QSqlResult::savePrepare(const QString& query)
вызывает сомнения в плане эффективности, непонятно зачем два раза query менять, если есть поддержка именованых параметров: // parse the query to memorize parameter location
d->executedQuery = d->namedToPositionalBinding(query);
if (driver()->hasFeature(QSqlDriver::NamedPlaceholders))
d->executedQuery = d->positionalToNamedBinding(query);
driver()->hasFeature(QSqlDriver::NamedPlaceholders)
всегда возвращает false
.Both syntaxes work with all database drivers provided by Qt. If the database supports the syntax natively, Qt simply forwards the query to the DBMS; otherwise, Qt simulates the placeholder syntax by preprocessing the query.
:VVV
на ?
и сохранения позиций «плэйсходеров», а вашей, судя по вашему комментарию, в виде простой подстановки значений.в релизе возвращает нулевой указатель, в дебаге кидает экцепшин
EXPECT_EQ(nullptr, domainModel.getDocumentById(invalidId));
auto document = domainModel.getDocumentById(validDocumentId);
ASSERT_TRUE(nullptr != document);
в клиентском коде:auto document = domainModel.getDocumentById(documentId);
if (nullptr != document) {
// do all business here
}
?
Все сложить в одну таблицу — слишком жирно. С Single TI — стоэтажные запросы, при добавлении еще одного параметра или тега надо обойти кучу мест и поправить код.