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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTableView показывает поля из базы неправильно...  (Прочитано 5019 раз)
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« : Июнь 14, 2007, 15:50 »

Привет...
Qt 4.3.0
PostgreSQL 8.1.3
кто-нибудь сталкивался?
создаю поле в базе типа "timestamp without time zone "
и если в базе оно пустое QTableView показывает его вида:
"01.01.-4713 0.00.00"

Есть подозрение что чудит модель... код такой...
На QT 4.2.3, показывалась буква "Т" между датой и временем, но пустые поля были пустыми....

скриншоты тут(на работе прокси, потому только сюда смог, пока не прикрыли Улыбающийся):
http://www.axifile.com/?271086
http://www.axifile.com?8974694
http://www.axifile.com?5108423

Код:
#
cceptedmodel=new QSqlQueryModel(this);
#
               acceptedmodel->setQuery("SELECT orders.key, orders.time_order,
#
               orders.phone, orders.address, orders.address_finished,
#
               operators.operator_name, orders.time_driver_lock,
#
               orders.time_driver_wait, orders.time_driver_go,
#
               carting.carting_name, drivers.nickname FROM orders LEFT JOIN carting
#
               ON orders.typecarting=carting.key LEFT JOIN operators ON
#
               operators.key=orders.operator_open LEFT JOIN drivers on
#
               orders.driver=drivers.key  WHERE orders.isaccepted=TRUE ORDER BY
#
               time_order;");
#
               if (acceptedmodel->lastError().isValid())
#
               {
#
                       QMessageBox::information(this, tr("Qtaxi"),
#
                       acceptedmodel->lastError().databaseText());
#
                       return;
#
               }
#
               acceptedmodel->setHeaderData(0, Qt::Horizontal, tr("Num"));
#
               acceptedmodel->setHeaderData(1, Qt::Horizontal, tr("Order time"));
#
               acceptedmodel->setHeaderData(2, Qt::Horizontal, tr("Call to"));
#
               acceptedmodel->setHeaderData(3, Qt::Horizontal, tr("Address"));
#
               acceptedmodel->setHeaderData(4, Qt::Horizontal, tr("Go to"));
#
               acceptedmodel->setHeaderData(5, Qt::Horizontal, tr("Order
#
               operator"));
#
               acceptedmodel->setHeaderData(6, Qt::Horizontal, tr("Driver go to"));
#
               acceptedmodel->setHeaderData(7, Qt::Horizontal, tr("Driver wait"));
#
               acceptedmodel->setHeaderData(8, Qt::Horizontal, tr("Driver out"));
#
               acceptedmodel->setHeaderData(9, Qt::Horizontal, tr("Carting"));
#
               acceptedmodel->setHeaderData(10, Qt::Horizontal, tr("Nick"));
#
               acceptedtableView->setModel(acceptedmodel);
#
               acceptedselection=acceptedtableView->selectionModel();
#
               connect(acceptedselection, SIGNAL(currentChanged(const QModelIndex
#
               &, const QModelIndex &)), this, SLOT(SetAcceptedIndex(const
#
               QModelIndex &)));
#
               acceptedtableView->resizeColumnsToContents();
#
       }
Записан
Steven_Orko
Гость
« Ответ #1 : Июнь 14, 2007, 17:27 »

Попробуй исправить в конфигах Postgres параметр DateStyle='German', у меня после этого проблемы решились )))
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #2 : Июнь 14, 2007, 18:57 »

Цитата: "Steven_Orko"
Попробуй исправить в конфигах Postgres параметр DateStyle='German', у меня после этого проблемы решились )))

Окей...

не решилось...
 Грустный

обновил до 8.2, такой же хрен...
Записан
Steven_Orko
Гость
« Ответ #3 : Июнь 15, 2007, 09:09 »

Слушай, я вчера не очень внимательно прочитал твой пост... Оказывается, речь еще идет и о временной зоне.. Насколько мне известно, то при установке Postgres не прописывает у себя timezone, а оставляет ее по умолчанию. У меня почему-то по-умолчанию стояла Австралия. Посмотри там же в настройках (конфигах) этот параметр. Он у меня идет сразу после datestyle. Если это не поможет, то сорри... )))
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #4 : Июнь 16, 2007, 04:59 »

Нет нет нет...
Я не использую временную зону, и на Qt 4.2.3 всё работало...

Речь о том, что QSqlQueryModel скорее всего глючит, так как неправильно выбирает модель...


Так и оказалось...
4 дня тролли не могли воспроизвести это у себя... Наконец им это удалось Улыбающийся
(после того как я отправил скриншоты)

I can reproduce this here and I can confirm that it is a regression
against Qt 4.2.3.  I've created task 167228 for our development team.
You can use this ID to track the status of this task online:

http://www.trolltech.com/developer/task-tracker
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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