Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.031 c
15-1165809964
Slider007
2006-12-11 07:06
2006.12.31
С днем рождения ! 11 декабря


2-1165665388
Marser1
2006-12-09 14:56
2006.12.31
Удаление из строки всех одинаковых символов


15-1165325280
re_kristina
2006-12-05 16:28
2006.12.31
Предложение о работе


3-1161330355
Megabyte
2006-10-20 11:45
2006.12.31
Не работает RowsAffected у TpFIBStoresProc


6-1154996642
progbeg
2006-08-08 04:24
2006.12.31
Как обратиться ко второму окну webbrowser а?




   Наверх