Текущий архив: 2006.12.31;
Скачать: CL | DM;
ВнизЧто за ошибка "Invalid floating point operation" Найти похожие ветки
← →
Petrovski (2006-10-16 17:22) [0]Источником информации через ADODataSet является хранимая процедура. При отображении/прокрутке информации в сетке появляется вышеуказанное сообщение. В самой процедуре из того, что могло бы влиять на ситуацию - умножение/деление смешанных целых и дробных значений. Может кто сталкивался с подобной ситуацией или знает, где искать причину ошибки?
← →
ANB © (2006-10-16 17:23) [1]Неправильная операция на числом с плавающей точкой.
← →
clickmaker © (2006-10-16 17:24) [2]Например, пытаешься из поля типа float получить целое (AsInteger)
← →
Stanislav © (2006-10-16 17:32) [3]Я с такой фигней сталкивался, когда запускал приложение под некоторыми win98, на XP было все ок!
Спасало обновление MDAC, либо копирование папки
\Program Files\Common Files\System\
с рабочей win98 на нерабочую, когда это непомогало, спасала переустановка винды :-)
← →
ANB © (2006-10-16 17:39) [4]Проверь типы полей в наборе данных. Скорее всего неправильно определились.
← →
clickmaker © (2006-10-16 18:11) [5]
> спасала переустановка винды
ну-ну. "Если в кране нет воды, то виной тому - Винды" :)
← →
Petr V.Abramov (2006-10-17 01:12) [6]это глюк, который м.б. от чего угодно, лечится патчами ADO, windows, программы
> clickmaker © (16.10.06 18:11) [5]
если глючит монитор - микрософт развертку спер
счет пришел за интернет - вот от микрософта вред :)
← →
Stanislav © (2006-10-17 08:36) [7]>clickmaker © (16.10.06 18:11) [5]
:-)
Не исключино что комп был заражен червем, может он чего-то наделал.
Разбираться небыло времени, быстрее было винду переставить.
← →
ANB © (2006-10-17 13:03) [8]
> лечится патчами ADO, windows, программы
и мозгов :)
← →
Petrovski (2006-10-17 13:21) [9]Никаких видимых нарушений в определении полей не нашел - поля типа Curency из MS SQL передаются как BCDField, Integer - как IntegerField.
Удалось локализовать источник ошибки. Это вычисляемое поле, в котором одно BCDField делилось на другое BCDField и умножалось на 100, причем только в том случае, если в числителе был 0.
Почему так - не понимаю.
Спасибо всем за соучастие.
← →
ANB © (2006-10-17 13:34) [10]
> Petrovski (17.10.06 13:21) [9]
Вот это уже ближе.
1) Перенеси вычисления на сервер.
2) Имхо - у тебя там и в знаменателе 0. Поставь проверку - если ноль в числителе, то не считать ничего, сразу ноль писать (case).
← →
Petrovski (2006-10-17 13:59) [11]> ANB [10]
Спасибо!
Я, собственно, и сделал по второму варианту. (Нулей в знаменателе нет). Сейчас попробую и первый вариант реализовать.
Страницы: 1 вся ветка
Текущий архив: 2006.12.31;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.164 c