Russian Qt Forum

Qt => Базы данных => Тема начата: mbb от Июнь 22, 2009, 09:35



Название: Oracle, ProxyModel и сортировка
Отправлено: mbb от Июнь 22, 2009, 09:35
При Select через SqlModel -> Proxy Model -> TableView столбцы с типом данных Number(3,0) в БД, например, "превращаются" в TableView в символьное представление и соответственно сортируются как строки, а не числа.
Не подскажете, кто виноват?
QT 4.5 MinGW  Win32


Название: Re: Oracle, ProxyModel и сортировка
Отправлено: Barmaglodd от Июнь 22, 2009, 10:26
Старый косяк.
http://www.qtsoftware.com/developer/task-tracker/index_html?method=entry&id=134135 (http://www.qtsoftware.com/developer/task-tracker/index_html?method=entry&id=134135)
http://www.qtsoftware.com/developer/task-tracker/index_html?method=entry&id=84822 (http://www.qtsoftware.com/developer/task-tracker/index_html?method=entry&id=84822)

Тут вменяемый ответ :)
http://www.qtsoftware.com/developer/task-tracker/index_html?method=entry&id=109409 (http://www.qtsoftware.com/developer/task-tracker/index_html?method=entry&id=109409)

Мы давно отказались от QSql в пользу OTL+самописные модели, т.к. более гибкое решение.


Название: Re: Oracle, ProxyModel и сортировка
Отправлено: mbb от Июнь 22, 2009, 12:38
Спасибо.
А это точно QtSql? Подсунуть свою унаследованную SqlModel не получиться?


Название: Re: Oracle, ProxyModel и сортировка
Отправлено: Barmaglodd от Июнь 22, 2009, 13:29
Точно :)

Тролли в комменте советуют смотреть через QSqlRecord::type реальный тип поля и приводить к нужному. Наверно, можно унаследоваться от QSqlQueryModel, и делать такие преобразования. Я сам такого не делал, т.ч. ничего конкретного сказать не могу.


Название: Re: Oracle, ProxyModel и сортировка
Отправлено: mbb от Июнь 22, 2009, 14:25
Я пытался сомтреть через record. И для varchar2 и для number(x,0) показывает QString. Более правдив typeID(). Он делает между ними разницу 1-для строки и 2-для числа. Но и только, посмотрел и отвали. Ладно, всё равно собирался "самомоделировать", попробую.