Цитата(AD @ 7.11.2008, 20:14)
Так в этом и весь интерес, чтобы как можно меньше менять ручками. Менять руками целый запрос через QSqlQuery немного муторно
ни какой логики, менять запрос или изголятся руками шурудить в табличной модели.
Цитата(AD @ 7.11.2008, 20:14)
(дизайн базы меняется довольно часто)
ну и что, вызывай Хранимую Процедуру (ХП), а дезайнеры БД пусть сделают тебе эту ХП, а сами внутри что угодно делают.
Я третью неделю измываюсь над своей БД, а прогу не менял, делает она такую штуку:
/* Обертка к ХП P_APPENDDATA.
*/
bool Controller::procAppendData(int port, int addr, int framefield, int value)
{
QSqlDatabase db = QSqlDatabase::database();
QSqlQuery q(db);
QString qstr;
bool ok;
q.setForwardOnly(true);
db.transaction();
q.prepare("EXECUTE PROCEDURE P_APPENDDATA(:port, :addr, :framefield, :value)");
q.bindValue(":port", port);
q.bindValue(":addr", addr);
q.bindValue(":framefield", framefield);
q.bindValue(":value", value);
ok = q.exec();
if (!ok)
{
qDebug() << "procAppendData, query ERROR............" << q.lastError();
db.rollback();
return ok;
}
ok = q.isActive();
db.commit();
return ok;
}