crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Проблема со вставкой в таблицу, через QSqlTableModel
Litkevich Yuriy
  опции профиля:
сообщение 7.11.2008, 17:40
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(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;

}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 7.11.2008, 17:55
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Ясно. Жаль. Пока что придется запросами, значит, делать. Дело в том, что эу ХП мне самому придется править - большей производительности не будет. Потом, конечно, сделаю в виде ХП. Но пока пусть и так побудет!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
hd_qt
  опции профиля:
сообщение 7.11.2008, 21:12
Сообщение #13


Студент
*

Группа: Новичок
Сообщений: 10
Регистрация: 4.11.2008
Из: Саратов
Пользователь №: 409

Спасибо сказали: 1 раз(а)




Репутация:   0  


У меня тоже QSqlTableModel не отображает (БД firebird). С QSQLITE работает, а с QIBASE нет. Это похоже уже баг.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 8.11.2008, 14:08
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата
У меня тоже QSqlTableModel не отображает (БД firebird). С QSQLITE работает, а с QIBASE нет. Это похоже уже баг.

Я бы не был столь категоричен на счет бага. Баг есть в версии 4.4.0, сказали на англоязычном форуме по Qt. Какая причина здесь, пока неясно.

Итак, выводы: проблема по не решена. Кто узнает верное/правильное решение, просьба сообщить и показать правильный результат! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
hd_qt
  опции профиля:
сообщение 9.11.2008, 20:16
Сообщение #15


Студент
*

Группа: Новичок
Сообщений: 10
Регистрация: 4.11.2008
Из: Саратов
Пользователь №: 409

Спасибо сказали: 1 раз(а)




Репутация:   0  


AD, По пробуй написать таблицу в верхнем регистре букв.
model.setTable("DEVICELIST");
У меня все заработало))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 10.11.2008, 10:23
Сообщение #16


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(hd_qt @ 9.11.2008, 20:16) *
AD, По пробуй написать таблицу в верхнем регистре букв.
model.setTable("DEVICELIST");
У меня все заработало))

Не помогло. Причина, где-то глубже. Блин, ведь знаю, что "истина где-то рядом", а вот где? :unsure:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 30.11.2024, 19:28