Russian Qt Forum
Ноябрь 22, 2024, 17:44
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
Postgres double в виде string-и )))
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Postgres double в виде string-и ))) (Прочитано 12844 раз)
RedDog
Частый гость
Offline
Сообщений: 221
Postgres double в виде string-и )))
«
:
Апрель 17, 2019, 21:44 »
Копаясь в исходниках Qt по работе с постгресовским драйвером, с удивлением обнаружил что тип double из драйвера приходит в виде стриги )))
Т.е. char* val ="3.14159265358", который потом конвертится через QString::toDouble()
Это реально так данные в постгресе лежат (подозреваю таки что нет) или это прикол драйвера? Почему не в bytea типе и хранить даблу в виде массива байт?
PS: Разные клиенты с разной точностью значения выводят.
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Postgres double в виде string-и )))
«
Ответ #1 :
Апрель 18, 2019, 06:27 »
>>... это прикол драйвера?
Ага, В общем случае в СУБД созвучные типы данных по размеру не совпадают с типами Си++.
>>Почему не в bytea типе и хранить даблу в виде массива байт?
потому, что куча классов Qt, в том числе представления и модели умеют работать только с QString, а с некими уникальными массивами - нет
Записан
Юра.
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Postgres double в виде string-и )))
«
Ответ #2 :
Апрель 18, 2019, 06:36 »
Подробности смотри тут:
https://doc.qt.io/qt-5/sql-types.html
Записан
Юра.
RedDog
Частый гость
Offline
Сообщений: 221
Re: Postgres double в виде string-и )))
«
Ответ #3 :
Апрель 18, 2019, 19:43 »
Не понятно вот какой момент: это Qt-ная обертка говорит постгресу выдавать числа в таком виде или сам постгрес не умеет их по другому выдавать?
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Postgres double в виде string-и )))
«
Ответ #4 :
Апрель 19, 2019, 12:35 »
Я давно не ковырял драйверы БД, но вроде работает так:
БД возвращает данные как ей удобно, а драйвер Qt их переделывает под себя ориентируясь на тип конкретного поля.
Записан
Юра.
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...