crossplatform.ru

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


  Ответ в Проблема со вставкой в таблицу
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


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

Не помогло. Причина, где-то глубже. Блин, ведь знаю, что "истина где-то рядом", а вот где? :unsure:
hd_qt Дата 9.11.2008, 20:16
  AD, По пробуй написать таблицу в верхнем регистре букв.
model.setTable("DEVICELIST");
У меня все заработало))
AD Дата 8.11.2008, 14:08
 
Цитата
У меня тоже QSqlTableModel не отображает (БД firebird). С QSQLITE работает, а с QIBASE нет. Это похоже уже баг.

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

Итак, выводы: проблема по не решена. Кто узнает верное/правильное решение, просьба сообщить и показать правильный результат! :)
hd_qt Дата 7.11.2008, 21:12
  У меня тоже QSqlTableModel не отображает (БД firebird). С QSQLITE работает, а с QIBASE нет. Это похоже уже баг.
AD Дата 7.11.2008, 17:55
  Ясно. Жаль. Пока что придется запросами, значит, делать. Дело в том, что эу ХП мне самому придется править - большей производительности не будет. Потом, конечно, сделаю в виде ХП. Но пока пусть и так побудет!
Litkevich Yuriy Дата 7.11.2008, 17:40
 
Цитата(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:14
 
Цитата(Litkevich Yuriy)
AD, а зачам ты вообще табличную модель (QSqlTableModel) руками трогаешь? Соедени с представлением и пусть пользователь данные в представление вводит, если надо руками то и пользуй модель запросов (QSqlQuery)

Так в этом и весь интерес, чтобы как можно меньше менять ручками. Менять руками целый запрос через QSqlQuery немного муторно (дизайн базы меняется довольно часто) (конечно, это временное явление) - то изменяются связи между таблицами, то данные из одной таблицы уходят в другую. Хотелось сделать так, чтобы потом можно было менять только имена таблиц и если что, имена атрибутов (параметров, полей) этих таблиц.
Litkevich Yuriy Дата 7.11.2008, 17:09
  AD, а зачам ты вообще табличную модель (QSqlTableModel) руками трогаешь? Соедени с представлением и пусть пользователь данные в представление вводит, если надо руками то и пользуй модель запросов (QSqlQuery)
AD Дата 7.11.2008, 14:25
 
Цитата(sploid @ 7.11.2008, 14:15) *
знаки вопроса заменяются значениями перед выполнением, а до этого ставятся нули.
http://doc.trolltech.com/4.4/qsqlquery.html
раздел "Binding values using positional placeholders (version 1)"

Так и что? Я ведь в дебаггер залезаю во время выполнения....
sploid Дата 7.11.2008, 14:15
  знаки вопроса заменяются значениями перед выполнением, а до этого ставятся нули.
http://doc.trolltech.com/4.4/qsqlquery.html
раздел "Binding values using positional placeholders (version 1)"
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 14:55