Re: Firebird-2.0.6.13266_0_win32 Исключе ние C0000005 ACCESS_VIOLATION
В письме от Mon, 09 Aug 2010 16:07:51 +0400, Khorsun Vlad hv...@optima.com.ua сообщал: Я глубоко не вникал. там получается у процедуры внутренняя переменная частично сохраняет состояние между вызовами. Причём странное какое-то состояние, не значение, а какой-то внутренний флаг - NULL она или мусор вместo NULL Если оно отличается от http://tracker.firebirdsql.org/browse/CORE-2204, то заноси. Адриано ответит. вроде отличается, дня через три занесу, пока уезжаю. Все равно в релизе не успеется поправить :-) -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
Re: Firebird-2.0.6.13266_0_win32 Исключе ние C0000005 ACCESS_VIOLATION
В письме от Fri, 06 Aug 2010 10:58:31 +0400, Khorsun Vlad hv...@optima.com.ua сообщал: Хорсун Влад PS Опять мне вносить ?.. посмотри plz http://comments.gmane.org/gmane.comp.db.firebird.russian/38389 я на rc3 ещё не проверял но по-моему - то тоже баг, как думаешь (вариант без type of) согласен? заносить стоит ? -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
Re: Firebird-2.0.6.13266_0_win32 Исключе ние C0000005 ACCESS_VIOLATION
Hello, Tonal! Tonal wrote: Энто жешь на кошерном Делфи код. Функция IIF где-то в 6-7 ке появилась. IIF? В Дельфи? Спаси и сохрани :-) Хотя очень похоже, что тупо превышен лимит размера статемента и/или так и оказалось. -- Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34
Re: Firebird-2.0.6.13266_0_win32 Исключе ние C0000005 ACCESS_VIOLATION
Hello, arxange1! arxange1 wrote: Удалось выявить проблемный запрос, на котором падает сервер. первое, что бросается в глаза - запрос составлен с прямой вставкой параметров, что не есть хорошо. Сервер падал при большом количестве записей в переменной sDeleteLog 'UPDATE S_S_RECEIVED_PACKETS ' + 'SET WAS_APPLIED = 1, ERROR_FLAG = 0, ' + 'ERROR_LOG = ' + IIF(sDeleteLog = '', 'NULL', + sDeleteLog + ) + 'WHERE ID = ' + IntToStr(iPacketID) это чешуя какая-то, а не запрос. Вернее, это текст запроса в клиентском приложении, и переменная sDeleteLog - отнюдь не серверная. Соответственно, что тут делает IIF - нихрена не понятно. Или где-то пропущена кавычка. Посмотрите внимательно на две последние строки: 'ERROR_LOG = ' + IIF(sDeleteLog = ... 'WHERE ID = ' + IntToStr(iPacketID) ... -- Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34
Re: Firebird-2.0.6.13266_0_win32 Исключе ние C0000005 ACCESS_VIOLATION
05.08.2010 00:52, Dmitri Kuzmenko пишет: Сервер падал при большом количестве записей в переменной sDeleteLog 'UPDATE S_S_RECEIVED_PACKETS ' + 'SET WAS_APPLIED = 1, ERROR_FLAG = 0, ' + 'ERROR_LOG = ' + IIF(sDeleteLog = '', 'NULL', + sDeleteLog + ) + 'WHERE ID = ' + IntToStr(iPacketID) это чешуя какая-то, а не запрос. Вернее, это текст запроса в клиентском приложении, и переменная sDeleteLog - отнюдь не серверная. Соответственно, что тут делает IIF - нихрена не понятно. Или где-то пропущена кавычка. Ну вот, без пальто уже и не признаёшь. :) Энто жешь на кошерном Делфи код. Функция IIF где-то в 6-7 ке появилась. По этому поводу может быть интересно какой именно набор компанент используется для работы с сервером и версия дельфей. Ну и фраза про количество записей в переменной sDeleteLog как-то не ложится в интуиции... По хорошему нужен полый текст, отправляемый на сервер. Хотя очень похоже, что тупо превышен лимит размера статемента и/или какая-то лажа с кодировкой/экранированием. -- Александр Замараев