Russian Qt Forum

Qt => Базы данных => Тема начата: baggins от Апрель 11, 2009, 12:18



Название: QSqlQueryModel и QSqlTableModel
Отправлено: baggins от Апрель 11, 2009, 12:18
не могу понять почему при использовании QSqlQueryModel таким вот образом все строки таблицы выводятся нормально


Код
C++ (Qt)
   QSqlQueryModel *Model = new QSqlQueryModel;
   Model->setQuery("select * from object_info");
   QTableView *view = new QTableView(this);
   view->setModel(Model);
   view->show();
 

а при использовании практически такого же кода но для QSqlTableModel выводятся тока заголовки таблицы

Код
C++ (Qt)
 
   QSqlTableModel *Model = new QSqlTableModel;
   Model->setTable("object_info");
   Model->select();
   QTableView *view = new QTableView(this);
   view->setModel(Model);
   view->show();
 


Название: Re: QSqlQueryModel и QSqlTableModel
Отправлено: MoPDoBoPoT от Апрель 11, 2009, 12:39
Точно не знаю, но смею предположить, что object_info является представлением, а не таблицей, и поэтому QSqlTableModel не хочет работать должным образом.


Название: Re: QSqlQueryModel и QSqlTableModel
Отправлено: baggins от Апрель 11, 2009, 12:44
ну в данном случае да, object_info это представление, но я пробовал отобразить и простую таблицу результат тот же


Название: Re: QSqlQueryModel и QSqlTableModel
Отправлено: baggins от Апрель 11, 2009, 13:05
а ну все, в принципе разобрался, выводит... у меня СУБД firebird и она все имена приводит к верхнему регистру, почему то тексты запросов были нечувствительны к регистру, а тут оказывается надо было писать так     
Код
C++ (Qt)
table->setTable("TBLNAMEGROUP");
 
только все равно непонятно, заголовки столбцов он то находил как то, и почему в тексте запроса он к регистру нечувствителен..? такая же штука прокатывает
Код
C++ (Qt)
relationModel->setQuery("select * from tblnamegroup");
 


Название: Re: QSqlQueryModel и QSqlTableModel
Отправлено: baggins от Апрель 11, 2009, 13:08
кстати представление тоже нормально работает