Russian Qt Forum

Qt => Базы данных => Тема начата: RedDog от Декабрь 18, 2010, 23:43



Название: QSqlRelationalTableModel не находит таблицу
Отправлено: 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." и без кавычек имя таблицы, одна и та же ошибка.


Название: Re: QSqlRelationalTableModel не находит таблицу
Отправлено: crossly от Декабрь 19, 2010, 00:47
попробуйте указать имя таблицы в верхнем регистре..


Название: Re: QSqlRelationalTableModel не находит таблицу
Отправлено: RedDog от Декабрь 19, 2010, 11:16
попробуйте указать имя таблицы в верхнем регистре..
Я беру имена через QSqlDatabase::tables()
правда она возвращает имена без "public"
зы: пробовал так же добавлять вперед имя БД - не работает хоть тресни


Название: Re: QSqlRelationalTableModel не находит таблицу
Отправлено: sadhu от Декабрь 19, 2010, 12:23
какая версия Qt? Если не слишком новая то там были ошибки в sql драйвере постгресса которые пофиксили в 4,6, а некоторые даже в 4.5.3 .
Лично я сталкивался с проблеммой когда имя схемы начинаеться с цифры и если имя таблицы содержит символы разных регистров.
Ипользовал версию Qt 4.5.0 , но с корпоративными правками(в том числе и эти баги потом поправили).


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

Qt 4.7.0 OpenSource
QSqlTableModel точно так же не работает - те же ошибки выдает.


Название: Re: QSqlRelationalTableModel не находит таблицу
Отправлено: RedDog от Декабрь 20, 2010, 16:39
вот нашел статейку http://litovchenko.com/blog/2008/07/qt4_postgresql_wtf/
ажно от 2008г. человек жаловался троллям, но судя по исходникам воз и ныне там.
подправил с учетом его рекомендаций драйвер, но работать не хочет.
у кого какие мысли будут?