Russian Qt Forum
Ноябрь 24, 2024, 12:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlRelationalTableModel не находит таблицу  (Прочитано 3589 раз)
RedDog
Гость
« : Декабрь 18, 2010, 23:43 »

СУБД PostgreSql 8.4.
Решил перейти с QSqlQueryModel на QSqlRelationalTableModel
был код (который работал):
Код:
QString Query = QString("SELECT * FROM public.\"%1\"").arg(_tableName);
m_model->setQuery(Query); //QSqlQueryModel *m_model

переделал:
Код:
QString tableName = QString("public.\"%1\"").arg(_tableName);
m_model->setTable(tableName); // QSqlRelationalTableModel *m_model
qDebug()<<m_model->lastError();
m_model->select();
не работает, пишет:
Цитировать
Unable to find table "Panel_Forms""
таблица такая в базе есть, пробовал так же и без "piblic." и без кавычек имя таблицы, одна и та же ошибка.
Записан
crossly
Гость
« Ответ #1 : Декабрь 19, 2010, 00:47 »

попробуйте указать имя таблицы в верхнем регистре..
Записан
RedDog
Гость
« Ответ #2 : Декабрь 19, 2010, 11:16 »

попробуйте указать имя таблицы в верхнем регистре..
Я беру имена через QSqlDatabase::tables()
правда она возвращает имена без "public"
зы: пробовал так же добавлять вперед имя БД - не работает хоть тресни
Записан
sadhu
Гость
« Ответ #3 : Декабрь 19, 2010, 12:23 »

какая версия Qt? Если не слишком новая то там были ошибки в sql драйвере постгресса которые пофиксили в 4,6, а некоторые даже в 4.5.3 .
Лично я сталкивался с проблеммой когда имя схемы начинаеться с цифры и если имя таблицы содержит символы разных регистров.
Ипользовал версию Qt 4.5.0 , но с корпоративными правками(в том числе и эти баги потом поправили).
Записан
RedDog
Гость
« Ответ #4 : Декабрь 19, 2010, 19:18 »

какая версия Qt? Если не слишком новая то там были ошибки в sql драйвере постгресса которые пофиксили в 4,6, а некоторые даже в 4.5.3 .
Лично я сталкивался с проблеммой когда имя схемы начинаеться с цифры и если имя таблицы содержит символы разных регистров.
Ипользовал версию Qt 4.5.0 , но с корпоративными правками(в том числе и эти баги потом поправили).

Qt 4.7.0 OpenSource
QSqlTableModel точно так же не работает - те же ошибки выдает.
Записан
RedDog
Гость
« Ответ #5 : Декабрь 20, 2010, 16:39 »

вот нашел статейку http://litovchenko.com/blog/2008/07/qt4_postgresql_wtf/
ажно от 2008г. человек жаловался троллям, но судя по исходникам воз и ныне там.
подправил с учетом его рекомендаций драйвер, но работать не хочет.
у кого какие мысли будут?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.122 секунд. Запросов: 21.