Russian Qt Forum

Qt => Базы данных => Тема начата: olegmar от Январь 12, 2009, 14:23



Название: Несколько вопросов по QSqlTableModel, QDate и ExSortFilterModel
Отправлено: olegmar от Январь 12, 2009, 14:23
Здравствуйте, уважаемые! Очень нужна ваша помощь!
Пишу небольшую программу с использованием sqlite.
Использую QTreeView, QSqlTableModel, ExSortFilterModel (которую нашёл в одном из сообщений этого раздела форума).

Создаю таблицу в базе следующим запросом :

Код:
QString yearTable("CREATE TABLE oleg (Number int primary key, Cased TEXT, Tovar TEXT, DateOpr QDate, DatePosr QDate, FIOPosr TEXT, Dvizh TEXT, DatePri QDate, Resultat TEXT)");

Потом с помощью ExSortFilterModel  фильтрую данные. Проблемка возникла с датами. Объясните пожалуйста как их записывать в таблицу и как потом отображать, чтобы можно было отфильтровать с помощью вышеназванной модели? (Фильтрация даты подразумевается вида "С хх.хх.хххх ПО хх.хх.хх".

Код ExSortFilterModel: можно посмотреть http://www.prog.org.ru/topic_7454_0.html

Спасибо вам огромное!



Название: Re: Несколько вопросов по QSqlTableModel, QDate и ExSortFilterModel
Отправлено: ритт от Январь 12, 2009, 14:53
разве в склайте имеется тип поля "QDate"?


Название: Re: Несколько вопросов по QSqlTableModel, QDate и ExSortFilterModel
Отправлено: olegmar от Январь 12, 2009, 15:05
Насколько мне известно нет, но нельзя ли обойти это ограничение?

И сразу же вопрос - можно ли использовать ещё какую-нибудь субд как файл?


Название: Re: Несколько вопросов по QSqlTableModel, QDate и ExSortFilterModel
Отправлено: ритт от Январь 12, 2009, 18:59
Код:
QString yearTable("CREATE TABLE oleg (Number int primary key, Cased TEXT, Tovar TEXT, DateOpr QDate, DatePosr QDate, FIOPosr TEXT, Dvizh TEXT, DatePri QDate, Resultat TEXT)");
> DateOpr QDate
я про это...


Название: Re: Несколько вопросов по QSqlTableModel, QDate и ExSortFilterModel
Отправлено: break от Январь 12, 2009, 21:01
Не пробовал сам но наверное вы можете:

Перед записью в БД своих дат преобразовывать стандартную дату в числовой формат

datetime.toTime_t()

В таком случае поле с датой будет иметь тип int

В момент фильтрации вероятно можно также преобразовать параметр фильтра в число - тогда по идее фильтрация выполниться. Можно еще конечно как строку хранить и фильтровать по символам - но это мне каж-ся менее правильно и будут вопросы с сортировкой...