Запись 0.001
в Postgres (9.1 по 9.3) с помощью адаптера данных .net приводит к странному значению 0.00
(в pgAdmin), которое отображается как ноль, но является не.Запись 0.001 в Postgres 9.x через данные адаптера приводит к странному 0,00-значению
На самом деле простые запросы, такие как SELECT 1/(SELECT "weird_field" ...) FROM ...
correctcly дает 1000
.
Более сложные запросы (с разделением) на удивление приводят к ошибке division by zero
.
Кроме того, заказ на в Navicat правильно показывает те значения между 0,0011 и 0,0009
Мы используем библиотеки DevArt для подключения к базе данных, но преступник, кажется, адаптер данных (или по крайней мере, комбо из этих двух), потому что простой прямой запрос, все еще через драйверы Devart, не дает того же результата.
Любая идея о том, что происходит?
-
РЕДАКТИРОВАТЬ:
Тип на БД numeric
, в программе представлена в виде double
decimal
.
PSQL печатает это:
-
0,00
(1 строка)
-
EDIT 2:
log_statement = 'all'
дает Страннее результат:
UPDATE "TABLE" SET ... "WEIRD_FIELD"=$8 ... WHERE ...
DETAIL: parameters: $1 = '7', $2 = '7', $3 = '18', $4 = '18', $5 = 'V03', $6 = 'Hz',
$7 = 'Hz', $8 = '0.00', $9 = '0', $10 = '2', $11 = '0'
Параметр для странного поля печатается как ноль (0.00), но очевидно, что это не ...
Обратите внимание, что значение в DataGridView населенной DataAdapter появляется правильный0.001
.
-
EDIT 3 (Maurice):
Проблема с адаптером Devart кажется фиксированным. Используя последнюю версию, я больше не вижу проблемы. Я думаю, что это связано с этим конкретным исправлением: 7.3.293 20-ноя-14: ошибка с точной потерей при работе с PgSqlType.Numeric по протоколу 3 исправлена Я обновил свое программное обеспечение с помощью новейших сборок Devart, и теперь все работает как и ожидалось.
Некоторые детали типа данных столбца PostgreSQL, соответствующее поле в приложении и быстрая проверка значений psql могут быть полезны ... –
@RichardHuxton см. В редакторе – Teejay
Тип на db не является "числовым" - это не формат вывода для поля «числовой». Возможно ли это «числовые (3,2)» или некоторые такие? –