Russian Qt Forum

Qt => Базы данных => Тема начата: oktogen от Октябрь 18, 2005, 09:47



Название: QTableView и QSqlTableModel не отображается таблица :?:
Отправлено: oktogen от Октябрь 18, 2005, 09:47
Привет всем, может кто сталкивался с такой траблой?
Пишу в Куте 4.0 , Нужно отобразить заданную таблицу в форме, казалось бы тривиальная задача.
Соединение с БД проходит успешно, в переменную NameTable типа Qstring попадает корректное имя таблицы ,  но при попытке отобразить всю таблицу с записями отображается только список полей в заголовке таблицы.  Присутствие строчки
tabmod->select(); никак не действует, при этом возвращается true. Кто сталкивался с этим? Есть какое-нибудь лекарство, как это обойти? Кусок кода тут же
Код:

  tabmod = new QSqlTableModel(this,DB_attr);
  tabmod->setTable(NameTable);
  b=tabmod->select();
  tabmod->setEditStrategy(QSqlTableModel::OnManualSubmit);
 
  tableView = new QTableView(this);
  tableView->setModel(tabmod);
  tableView->show();  

Заранее спасибо за любую помощь или совет. Критика за возможное ламерство приветствуется.  :D


Название: Re: QTableView и QSqlTableModel не отображается таблица :?:
Отправлено: AlexKiriukha от Октябрь 26, 2005, 12:06
Цитата: "oktogen"
Привет всем, может кто сталкивался с такой траблой?
Пишу в Куте 4.0 , Нужно отобразить заданную таблицу в форме...
Код:

  tabmod = new QSqlTableModel(this,DB_attr);
  tabmod->setTable(NameTable);
  b=tabmod->select();
  tabmod->setEditStrategy(QSqlTableModel::OnManualSubmit);
 
  tableView = new QTableView(this);
  tableView->setModel(tabmod);
  tableView->show();  


Какая версия Qt? У меня в 4.0.1 (Linux) при таком изменении в коде:
Код:

  tabmod = new QSqlTableModel;

отображается без проблем. Использую PostgreSQL.
Когда столкнулся с похожей проблемой, просто перевел TableName в нижний регистр (FooBar -> foobar), и все стало отображаться.


Название: QTableView и QSqlTableModel не отображается таблица :?:
Отправлено: oktogen от Октябрь 26, 2005, 12:20
QT 4.0 for VS2003
MustDie XP SP2.
Там же стоит сервак MySQL 5.0.15, портирован для win32

Я это исправил, но начались траблы с русским текстом.
Вместо нормальных слов выдается что-то наподобие "?????3/?? ???"
И в самих таблицах, и в сообщениях сервера, и в запросах.
C англицким все в ажуре. Даже редактировать можно.


Название: QTableView и QSqlTableModel не отображается таблица :?:
Отправлено: AlexKiriukha от Октябрь 26, 2005, 15:41
Цитата: "oktogen"
Я это исправил, но начались траблы с русским текстом.
Вместо нормальных слов выдается что-то наподобие "?????3/?? ???"
И в самих таблицах, и в сообщениях сервера, и в запросах.
C англицким все в ажуре. Даже редактировать можно.

Точно не знаю и попробовать негде, но есть два направления:
1. Кодировка, используемая драйвером.
2. Кодировка, используемая самим MySQL (что-то типа SET ENCODING или SET CHARACTER SET).
У меня везде UTF-8, поэтому проблем не наблюдалось.