March 22, 2012

Edvac Edvac
Lab Rat
2 posts

QTableView

 

На Linux при выводе строковых данных в QTableView возникает ошибка
qGetStringData: Error while fetching data ( “[FreeTDS][SQL Server]Program type out of range” )
с цифрами проблем нет, только строки.
тестил через isql все ок.

3 replies

March 27, 2012

Solree Solree
Lab Rat
38 posts

Дайте код вывода строки.

March 27, 2012

Edvac Edvac
Lab Rat
2 posts

при таком подключении выводит названия таблиц корректно и и цифровые значения.
при выводе строковых данных в таблицу пишет ошибку:qGetStringData: Error while fetching data ( “[FreeTDS][SQL Server]Program type out of range” )

  1. QTextCodec *codec = QTextCodec::codecForName("UTF-8");
  2.             QTextCodec::setCodecForTr(codec);
  3.             QTextCodec::setCodecForCStrings(codec);
  4.             QTextCodec::setCodecForLocale(codec);
  5.     QSqlDatabase db;
  6.     db=QSqlDatabase::addDatabase("QODBC");
  7.     db.setHostName("192.168.0.35");
  8.     db.setDatabaseName("SQLOnLine");
  9.     db.setUserName("sa");
  10.     db.setPassword("admin");
  11.     db.open();
  12.     qDebug()<<db.tables();
  13.     QSqlQueryModel *model=new QSqlQueryModel;
  14.     model->setQuery("Select * from Номера;");
  15.     ui->tableView->setModel(model);

подключаться через TDS драйвер то выводит корректно только латинские символы.
  1. QTextCodec *codec = QTextCodec::codecForName("UTF-8");
  2.             QTextCodec::setCodecForTr(codec);
  3.             QTextCodec::setCodecForCStrings(codec);
  4.             QTextCodec::setCodecForLocale(codec);
  5.     QSqlDatabase db;
  6.     db=QSqlDatabase::addDatabase("QTDS");
  7.     db.setHostName("192.168.0.35");
  8.     db.setDatabaseName("Hotel");
  9.     db.setUserName("sa");
  10.     db.setPassword("admin");
  11.     db.open();
  12.     qDebug()<<db.tables();
  13.     QSqlQueryModel *model=new QSqlQueryModel;
  14.     model->setQuery("Select * from Users;");
  15.     ui->tableView->setModel(model);

pic
С кодировками игрался толку 0.
Странно в первом случае без проблем выводит названия таблиц на русском языке.
На винде все без проблем работает.

March 27, 2012

Solree Solree
Lab Rat
38 posts

Предполагаю, что может с драйверами или либами от ДБ что-то не так. Попробуйте через нативное АПИ какой-то ДБ сделать тоже самое, тогда будет более понятно, где ошибка.
Но это только предположение, конкретно не знаю, что не так.

 
  ‹‹ [Решено]QAxObject чтение файлов      [Решено]Разрыв строки в Word ››

You must log in to post a reply. Not a member yet? Register here!