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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Postgres double в виде string-и )))  (Прочитано 11805 раз)
RedDog
Частый гость
***
Offline Offline

Сообщений: 221


Просмотр профиля
« : Апрель 17, 2019, 21:44 »

Копаясь в исходниках Qt по работе с постгресовским драйвером, с удивлением обнаружил что тип double из драйвера приходит в виде стриги )))
Т.е. char* val ="3.14159265358", который потом конвертится через QString::toDouble()

Это реально так данные в постгресе лежат (подозреваю таки что нет) или это прикол драйвера? Почему не в bytea типе и хранить даблу в виде массива байт?
PS: Разные клиенты с разной точностью значения выводят.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Апрель 18, 2019, 06:27 »

>>... это прикол драйвера?
Ага, В общем случае в СУБД созвучные типы данных по размеру не совпадают с типами Си++.

>>Почему не в bytea типе и хранить даблу в виде массива байт?
потому, что куча классов Qt, в том числе представления и модели умеют работать только с QString, а с некими уникальными массивами - нет
Записан

Юра.
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Апрель 18, 2019, 06:36 »

Подробности смотри тут: https://doc.qt.io/qt-5/sql-types.html
Записан

Юра.
RedDog
Частый гость
***
Offline Offline

Сообщений: 221


Просмотр профиля
« Ответ #3 : Апрель 18, 2019, 19:43 »

Не понятно вот какой момент: это Qt-ная обертка говорит постгресу выдавать числа в таком виде или сам постгрес не умеет их по другому выдавать?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Апрель 19, 2019, 12:35 »

Я давно не ковырял драйверы БД, но вроде работает так:
БД возвращает данные как ей удобно, а драйвер Qt их переделывает под себя ориентируясь на тип конкретного поля.
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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