|
Проблема с преобразованием данных, округление численных значений
|
|||
---|---|---|---|
#18+
Выполняю SQL запрос к серверу cache с удаленного компьютера через драйвер Intersystems ODBC Cache, данные получаю через SQL шлюз, запрос вида: Код: sql 1.
summa - поле decimal(15,2), результат получаю округленный, без значений после десятичной точки, выполняю этот же запрос через портал cache (Выполнить SQL запрос), получаю правильное значение: 6933894,51, ладно, предположил что драйвер ODBC cache может неверно по значению определил тип поля, помогаю ему конструкцией: Код: sql 1.
в результате получаю в выборке нули после запятой: 6933894,000000000 обиделся на него, подложил ему Код: sql 1.
ясно показывая что это поле со знаками после запятой и опять результата нет ... Ставил драйвер ODBC Cache и 2013 и 2008 результат аналогичен, как быть ??? и самое главное почему ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2013, 16:17 |
|
Проблема с преобразованием данных, округление численных значений
|
|||
---|---|---|---|
#18+
Где-то погрешности при преобразовании в "машинное число" и обратно. У нас обычно очень много нулей с ..1 на конце или куча девяток. Поэтому через ODBC перегоняем только строки и целые числа, надежнее преобразовать их уже в месте получения. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2013, 16:24 |
|
Проблема с преобразованием данных, округление численных значений
|
|||
---|---|---|---|
#18+
Блок А.Н., я правильно понял, что это проблема именно клиентского драйвера ODBC ? Если это так, то наверное оно как-то лечится или нет ? Запросы бывают неподъемные, тратить ресурсы на преобразование туда и обратно жалко.... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2013, 16:42 |
|
Проблема с преобразованием данных, округление численных значений
|
|||
---|---|---|---|
#18+
dm-23 , Caché 2013.1Сделал в области A тестовый класс:Class mysheme.table1 Extends %Persistent { Property summa As %Numeric(SCALE = 2); ClassMethod Fill() { d ..%KillExtent() &sql(insert into mysheme.table1(summa) values (6933894.51)) } }Настроил SQL шлюз через ODBC и связал эту таблицу в область B. Подключился опять же через ODBC к области B и выполнил запрос: Код: sql 1.
Код: plaintext
Если есть возможность, попробуйте подключиться к базе через ODBC напрямую, минуя SQL шлюз. Каков будет результат? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2013, 17:16 |
|
|
start [/forum/topic.php?fid=39&msg=38270390&tid=1557153]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 139ms |
0 / 0 |