powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Проблема с преобразованием данных, округление численных значений
4 сообщений из 4, страница 1 из 1
Проблема с преобразованием данных, округление численных значений
    #38270390
dm-23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выполняю SQL запрос к серверу cache с удаленного компьютера через драйвер Intersystems ODBC Cache, данные получаю через SQL шлюз, запрос вида:

Код: sql
1.
Select sum(summa) from mysheme.table1



summa - поле decimal(15,2), результат получаю округленный, без значений после десятичной точки,
выполняю этот же запрос через портал cache (Выполнить SQL запрос), получаю правильное значение: 6933894,51,
ладно, предположил что драйвер ODBC cache может неверно по значению определил тип поля, помогаю ему конструкцией:

Код: sql
1.
Select sum(summa+0.12) from mysheme.table1



в результате получаю в выборке нули после запятой: 6933894,000000000

обиделся на него, подложил ему

Код: sql
1.
Select 0.12+sum(summa) from mysheme.table1


ясно показывая что это поле со знаками после запятой и опять результата нет ...

Ставил драйвер ODBC Cache и 2013 и 2008 результат аналогичен, как быть ??? и самое главное почему ??
...
Рейтинг: 0 / 0
Проблема с преобразованием данных, округление численных значений
    #38270404
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то погрешности при преобразовании в "машинное число" и обратно. У нас обычно очень много нулей с ..1 на конце или куча девяток. Поэтому через ODBC перегоняем только строки и целые числа, надежнее преобразовать их уже в месте получения.
...
Рейтинг: 0 / 0
Проблема с преобразованием данных, округление численных значений
    #38270438
dm-23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.,

я правильно понял, что это проблема именно клиентского драйвера ODBC ?
Если это так, то наверное оно как-то лечится или нет ? Запросы бывают неподъемные, тратить ресурсы на преобразование туда и обратно жалко....
...
Рейтинг: 0 / 0
Проблема с преобразованием данных, округление численных значений
    #38270503
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
Select sum(summa) from mysheme.table1

Код: plaintext
Результат: 6933894,51

Если есть возможность, попробуйте подключиться к базе через ODBC напрямую, минуя SQL шлюз. Каков будет результат?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Проблема с преобразованием данных, округление численных значений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]