Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Странная ошибка (деление на ноль когда его нет)  [new]
Newb
Member

Откуда:
Сообщений: 121
сервер: MS-SQL2000 (девелопер без сервиспаков)
клиент: C#

Есть SQL-процедура, выполняющаяся продолжительное время (около 15 мин.) (она в цикле вызывает несколько других)
переодически появляется сообщение об ошибке "Деление на ноль" при этом процедура продолжает выполняться. везде стоят проверки на неравенство нулю, а иногда ошибка вылетает на процедурах где деления вовсе НЕТ. Причем переодичность появления ошибки совершенно непредсказуема.

На железо я не грешу так как ошибка проявляется на нескольких машинах одновременно. В тоже время на других с этой же базой все нормально.

Что может быть? А то у меня уже и мыслей совсем нет
3 май 05, 10:40    [1512430]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
BusyMan
Member

Откуда: Москва
Сообщений: 4927
У меня был слуачай, когда я около года не мог найти ошибку "Subquery return more then 1 value" - А все из-за того, что в Enterprise Manager шрифт маленький.

На железо - последнее дело грешить.

Код вываливай...
3 май 05, 10:47    [1512455]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
1. DBCC CHECKDB
2.
Newb
MS-SQL2000 (девелопер без сервиспаков)

так может пора бы уже???
3. Точное сообщение об ошибке от сервера
3 май 05, 10:48    [1512462]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
Glory
Member

Откуда:
Сообщений: 104760
везде стоят проверки на неравенство нулю
А типы аргументов в вычислениях какие ? float ?
3 май 05, 10:49    [1512464]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
Newb
Member

Откуда:
Сообщений: 121
2 GreenSunrise:

2. не хочу :)) да и дело то не в этом !!!
3. "деление на ноль", а дальше что-то про NULL в агрегации

2 Glory:
Да а если точнее то numeric(20,7) или numeric(20,2)

Сдается мне что это какая-то вещь в настройках сервера связанная с обработкой NULL при агрегации.
6 май 05, 12:20    [1522109]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
Newb
Member

Откуда:
Сообщений: 121
Вот абсолютно точное вообщение об ошибке

Divide by zero error encountered.
The statement has been terminated.
Warning: Null value is eliminated by an aggregate or other SET operation.
Warning: Null value is eliminated by an aggregate or other SET operation.
Warning: Null value is eliminated by an aggregate or other SET operation.

Буду очень благодарен за помощь
10 май 05, 03:27    [1526833]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Сдается мне что это какая-то вещь в настройках сервера связанная с обработкой NULL при агрегации.
Сообщение про NULL при агрегации относится уже к дркншгим запросам.
Тот запрос, который вызвал деление на 0 - The statement has been terminated
Так что анализируйте конкретный запрос, который вызывает ошибку
Возможно 0 получатеся в результате вычислений
10 май 05, 10:00    [1526888]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
BusyMan
Member

Откуда: Москва
Сообщений: 4927
А может деление на ноль где-то все-таки есть... Если одна ХП вызывает другую... Или в функции где-нибудь
10 май 05, 14:11    [1527234]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Newb
2. не хочу :)) да и дело то не в этом !!!

Люблю наивных папуасов... Не желаете полюбоваться на мнение разработчиков по этому поводу? Посмотрите на результаты поиска - http://search.microsoft.com/search/results.aspx?view=en-us&st=a&na=81&qu=&qp=Divide+by+zero+error+encountered&qa=&qn=&c=10&s=0

Проверьте во всех использующихся процедурах типы данных. Включая вычисления "на лету", с импользованием констант. К примеру, 2/3 будет 0, как это ни покажется вам удивительным.
11 май 05, 11:16    [1528856]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
Newb
Member

Откуда:
Сообщений: 121
BusyMan

А может деление на ноль где-то все-таки есть... Если одна ХП вызывает другую... Или в функции где-нибудь

Да вто том то и дело что на раздичных машинах но на одних и техже данных эта ошибка где появляется а где нет. Причет и на одной то появляется эпизодически

Glory

Так что анализируйте конкретный запрос, который вызывает ошибку

Сама организация такова что интерфейс запускает хранимку, которая в свою очередь вызывает несколько других. Как можно отловить это один "плохой" запрос в процедуре имея ввиду эпизодичность появления ошибки? Последовательный ручной запуск процедур результата не дал. Да и вообще смущает именно ЭПИЗОДИЧНОСТЬ появления ошибки на НЕКОТОРЫХ машинах.
Для тестирования поставил дома на два ноутбука. на одном ошибка есть, на другом нет. Что блин за напсать такая ?????
11 май 05, 15:55    [1530211]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Ну и как дела с сервис-паками на машинах, где на одной ошибка проявляется, на второй не проявляется? Что, ссылка на официально признанные баги вас ничуть не убедила?
11 май 05, 15:58    [1530230]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
aag
Member

Откуда: Москва
Сообщений: 1955
автор
Да и вообще смущает именно ЭПИЗОДИЧНОСТЬ появления ошибки на НЕКОТОРЫХ машинах


А данные одни и те же?

Nobody faults but mine... (LZ)
11 май 05, 18:09    [1530815]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
Newb
Member

Откуда:
Сообщений: 121
Да прочитал я ссылки, кое что на толкнуло на решение но смущает то что в конфигурация (в смысле сервиспаков) ОДИНАКОВАЯ на всех машинах, А на одной ошибка появляется, а на другой нет
11 май 05, 18:11    [1530818]     Ответить | Цитировать Сообщить модератору
 Re: Странная ошибка (деление на ноль когда его нет)  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Ну тогда завести профайлер и ловить... Что тут еще предложить можно.
11 май 05, 18:27    [1530860]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить