Страница 1 из 1

Падение FB 1.5.2 CS при вызове UDF из FUDLIB!

Добавлено: 10 янв 2005, 13:34
Black
Привет всем! Приобрели двухпроцессорный сервер.
После установки FB 1.5.2 CS, происходит падение сервера при вызове ф-ций (MAKEDATE, SUB_TIME, DIFFDATE) из библиотеки FUDLIB.
Если поставить FB 1.5.2 SS?, то работает без проблем.
Подскажите, как можно решить проблему в короткий срок.

С уважением, Дмитрий Воронин!

Добавлено: 10 янв 2005, 16:44
dimitr
Дай линк на бинарник этой либы или зашли мне ее мылом. Заодно приведи любой SQL-оператор, приводящий к падению. Я проверю и доложу диагноз.

Добавлено: 10 янв 2005, 17:04
Гость
dimitr писал(а):Дай линк на бинарник этой либы или зашли мне ее мылом. Заодно приведи любой SQL-оператор, приводящий к падению. Я проверю и доложу диагноз.
http://www.ibase.ru/download/FUDLibrary-0.50.win32.zip

Код: Выделить всё

CREATE PROCEDURE TEST_DIFFDATE(
    X DATE,
    Y DATE)
RETURNS (
    RESULT INTEGER)
AS
BEGIN

result = diffdate(X, Y, 2);

END
Это просто пример. Как я понял вылетает FB, при вызове любой функции из этой библиотеки.


С уважением, Дмитрий Воронин!

Добавлено: 10 янв 2005, 21:05
dimitr
Либо выкинь эту библиотеку и замени ее другой, либо перекомпилируй ее сам. В ней все функции объявлены как stdcall вместо положенного cdecl. А классик оказался более чувствительным к порче стека, чем супер. Отсюда и результат.

Добавлено: 11 янв 2005, 10:21
Гость
dimitr писал(а):Либо выкинь эту библиотеку и замени ее другой, либо перекомпилируй ее сам. В ней все функции объявлены как stdcall вместо положенного cdecl. А классик оказался более чувствительным к порче стека, чем супер. Отсюда и результат.
Я готов от неё отказаться, но в ней есть необходимые функции, особенно DIFFDATE, которая может возратить количество минут между двумя переменными типа TIMESTAMP. Ты не мог бы подсказать где можно найти эту информацию (понимаю, что не в тему формума, но раз уже затронули вопрос...)


С уважением, Дмитрий Воронин!

Добавлено: 11 янв 2005, 10:35
dimitr
У меня под рукой нет исходников RFUNC, но вроде там была подобная функция. Но IMHO быстрее и удобнее было бы перекомпилировать FUDLIB самим или связаться с автором, чтобы он собрал корректную версию.