Russian Qt Forum
Ноябрь 24, 2024, 06:02
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
Страниц: [
1
]
2
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate. (Прочитано 26889 раз)
andrew_121
Гость
Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
:
Май 25, 2008, 13:34 »
День добрый.
Ситуация следующая:
Создаю таблицу следующим запросом:
CREATE TABLE Prihod (GroupId INT, TovarId INT, Date QDate, Name QString, Count INT, Tsena DOUBLE)
Но при запросе:
SELECT Date, Name, Count, Tsena FROM Prihod WHERE Date < '1.6.2008'
Результат не тот что нужен. Похоже что Date возвращается не как QDate.
Подскажите в чем проблема, как исправить ?
Заранее спасибо.
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #1 :
Май 25, 2008, 14:03 »
В Асистенте написано, что поумолчанию Qt'я возвращает строку. Ты сам должен приводить к нужному типу.
Записан
Юра.
andrew_121
Гость
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #2 :
Май 25, 2008, 14:44 »
Подскажите плиз, как ?
SELECT Date, Name, Count, Tsena FROM Sklad WHERE Date < '1.6.2008'
Т.е. после запроса, мне нужно приводить Date в QDate, и на основании этого, принимать решение: Подходит - Не подходит ?
А в запросе этого некак нельзя сделать ?
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #3 :
Май 25, 2008, 14:56 »
читай Асистент:
Навигация по результирующей выборке
Записан
Юра.
andrew_121
Гость
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #4 :
Май 25, 2008, 16:08 »
Цитата: lit-uriy от Май 25, 2008, 14:56
читай Асистент:
Навигация по результирующей выборке
Прочитал.
Нечего нового не узнал.
В чем подвох ?
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #5 :
Май 25, 2008, 16:17 »
Ну это просто капец какой-то, там черным по белому написано:
Цитировать
Функция QSqlQuery::value() возвращает значение типа QVariant
, который может хранить значения различных типов C++ и ядра Qt, такие как int, QString и QByteArray. Различные типы значений базы данных автоматически приводятся к ближайшему эквиваленту в Qt. В предыдущем примере кода
мы вызывали QVariant::toString()
и QVariant::toInt(), чтобы
конвертировать возвращенное значение в QString
и int соответственно.
Записан
Юра.
andrew_121
Гость
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #6 :
Май 25, 2008, 16:23 »
Цитата: lit-uriy от Май 25, 2008, 16:17
Ну это просто капец какой-то, там черным по белому написано:
Цитировать
Функция QSqlQuery::value() возвращает значение типа QVariant
, который может хранить значения различных типов C++ и ядра Qt, такие как int, QString и QByteArray. Различные типы значений базы данных автоматически приводятся к ближайшему эквиваленту в Qt. В предыдущем примере кода
мы вызывали QVariant::toString()
и QVariant::toInt(), чтобы
конвертировать возвращенное значение в QString
и int соответственно.
Ну ешкин кот.
Вопрос в том: Можно ли SQL запросом заставить правильно понимать QDate ?
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #7 :
Май 25, 2008, 16:29 »
"SQLite doesn't have a type-system like other databases, so Qt will interpret fields as strings."
Записан
Юра.
BRE
Гость
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #8 :
Май 25, 2008, 16:48 »
Цитата: andrew_121 от Май 25, 2008, 16:23
Ну ешкин кот.
Вопрос в том: Можно ли SQL запросом заставить правильно понимать QDate ?
Можно.
Вопрос в том как ты формируешь строку запроса?
QSqlQuery q( "SELECT date, number FROM table WHERE date < \'" + date.toString() + "\'" );
или
QSqlQuery q;
q.prepare( "SELECT date, number FROM table WHERE date < :date" );
q.bindValue( ":date", date );
или как???
Записан
Вячеслав
Гость
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #9 :
Май 25, 2008, 17:10 »
возьми нормальный сервер и не компостируй себе мозг ..... sqLite не даром так назван .....
Щаз альтернатив - много ... навскидку мускул и птиц (firebird) у второго вообще прозрачно - хош embed вариант ,хош нормальный клиент с нормальным сервером (а embed позволяет и к нормальному сервку цепляться) + возможность писать хранимки и тригера ....
Вообщем -"мадам, Вам шашечки или ехать?" (c) не помню
Записан
andrew_121
Гость
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #10 :
Май 25, 2008, 17:21 »
Цитата: BRE от Май 25, 2008, 16:48
Цитата: andrew_121 от Май 25, 2008, 16:23
Ну ешкин кот.
Вопрос в том: Можно ли SQL запросом заставить правильно понимать QDate ?
Можно.
Вопрос в том как ты формируешь строку запроса?
QSqlQuery q( "SELECT date, number FROM table WHERE date < \'" + date.toString() + "\'" );
или
QSqlQuery q;
q.prepare( "SELECT date, number FROM table WHERE date < :date" );
q.bindValue( ":date", date );
или как???
Первый вариант.
Записан
BRE
Гость
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #11 :
Май 25, 2008, 17:23 »
Цитата: andrew_121 от Май 25, 2008, 17:21
Цитата: BRE от Май 25, 2008, 16:48
Цитата: andrew_121 от Май 25, 2008, 16:23
Ну ешкин кот.
Вопрос в том: Можно ли SQL запросом заставить правильно понимать QDate ?
Можно.
Вопрос в том как ты формируешь строку запроса?
QSqlQuery q( "SELECT date, number FROM table WHERE date < \'" + date.toString() + "\'" );
или
QSqlQuery q;
q.prepare( "SELECT date, number FROM table WHERE date < :date" );
q.bindValue( ":date", date );
или как???
Первый вариант.
А откуда знаешь, что дата храниться как день.месяц.год, а не год.месяц.день например?
Записан
andrew_121
Гость
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #12 :
Май 25, 2008, 17:28 »
Цитата: Вячеслав от Май 25, 2008, 17:10
возьми нормальный сервер и не компостируй себе мозг ..... sqLite не даром так назван .....
Щаз альтернатив - много ... навскидку мускул и птиц (firebird) у второго вообще прозрачно - хош embed вариант ,хош нормальный клиент с нормальным сервером (а embed позволяет и к нормальному сервку цепляться) + возможность писать хранимки и тригера ....
Вообщем -"мадам, Вам шашечки или ехать?" (c) не помню
Я с базами, месяц как знаком...
И чем база от базы отличается, не знаю !!!
Можно ссылочки на рекомендуемые Вами базы, и на доки тож...
Спасибо.
Записан
andrew_121
Гость
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #13 :
Май 25, 2008, 17:32 »
Цитата: BRE от Май 25, 2008, 17:23
Цитата: andrew_121 от Май 25, 2008, 17:21
Цитата: BRE от Май 25, 2008, 16:48
Цитата: andrew_121 от Май 25, 2008, 16:23
Ну ешкин кот.
Вопрос в том: Можно ли SQL запросом заставить правильно понимать QDate ?
Можно.
Вопрос в том как ты формируешь строку запроса?
QSqlQuery q( "SELECT date, number FROM table WHERE date < \'" + date.toString() + "\'" );
или
QSqlQuery q;
q.prepare( "SELECT date, number FROM table WHERE date < :date" );
q.bindValue( ":date", date );
или как???
Первый вариант.
А откуда знаешь, что дата храниться как день.месяц.год, а не год.месяц.день например?
Ну как они расположены в базе на самом деле - незнаю!
Но выводятся как - день.месяц.год.
Записан
BRE
Гость
Re: Qt-4.4.0, Драйвер - QSQLITE, Проблема с QDate.
«
Ответ #14 :
Май 25, 2008, 17:34 »
Цитата: andrew_121 от Май 25, 2008, 17:32
Ну как они расположены в базе на самом деле - незнаю!
Но выводятся как - день.месяц.год.
Попробуй второй вариант...
Драйвер сам переведет дату в необходимый формат.
Записан
Страниц: [
1
]
2
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...