crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 14:30