Название: Postgres double в виде string-и ))) Отправлено: RedDog от Апрель 17, 2019, 21:44 Копаясь в исходниках Qt по работе с постгресовским драйвером, с удивлением обнаружил что тип double из драйвера приходит в виде стриги )))
Т.е. char* val ="3.14159265358", который потом конвертится через QString::toDouble() Это реально так данные в постгресе лежат (подозреваю таки что нет) или это прикол драйвера? Почему не в bytea типе и хранить даблу в виде массива байт? PS: Разные клиенты с разной точностью значения выводят. Название: Re: Postgres double в виде string-и ))) Отправлено: lit-uriy от Апрель 18, 2019, 06:27 >>... это прикол драйвера?
Ага, В общем случае в СУБД созвучные типы данных по размеру не совпадают с типами Си++. >>Почему не в bytea типе и хранить даблу в виде массива байт? потому, что куча классов Qt, в том числе представления и модели умеют работать только с QString, а с некими уникальными массивами - нет Название: Re: Postgres double в виде string-и ))) Отправлено: lit-uriy от Апрель 18, 2019, 06:36 Подробности смотри тут: https://doc.qt.io/qt-5/sql-types.html
Название: Re: Postgres double в виде string-и ))) Отправлено: RedDog от Апрель 18, 2019, 19:43 Не понятно вот какой момент: это Qt-ная обертка говорит постгресу выдавать числа в таком виде или сам постгрес не умеет их по другому выдавать?
Название: Re: Postgres double в виде string-и ))) Отправлено: lit-uriy от Апрель 19, 2019, 12:35 Я давно не ковырял драйверы БД, но вроде работает так:
БД возвращает данные как ей удобно, а драйвер Qt их переделывает под себя ориентируясь на тип конкретного поля. |