Форум: "Базы";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
ВнизUDF функция замены символов в строке для ІВ 5.5. Найти похожие ветки
← →
Vn (2004-11-23 15:46) [0]Мастера не посоветуете нормальную UDF библиотеку, где бы была функция замены символов в строке. До сих пор пользовался rfunc.dll и FreeUDFLib.dll. Но в 1-й функция strreplace глючит, а во 2-й вообще не нашел. Спасибо.
← →
Sergey13 © (2004-11-23 15:49) [1]А может тебе нормальный сервер поставить?
← →
Vn (2004-11-23 15:55) [2]А чем ІВ 5.5 плох? Да и задача не космические корабли запускать :)))
← →
Sergey13 © (2004-11-23 16:00) [3]Да говорят 5.5 одна из самых глючных у Борланда получилась. А УДФ - почему бы свою не написать?
← →
Sergey_Masloff (2004-11-23 21:55) [4]Sergey13 © (23.11.04 16:00) [3]
>Да говорят 5.5 одна из самых глючных у Борланда получилась.
Воистину так, они 5.6 всем сразу практически разослали...
>А УДФ - почему бы свою не написать?
И опять соглашусь. Времени 20 минут займет.
← →
Johnmen © (2004-11-24 00:16) [5]>rfunc.dll ... функция strreplace глючит
Позвольте уличить вас в наглой лжи...
(безотносительно версии сервера)
:)))
← →
Vn (2004-11-24 13:11) [6]Johnmen © (24.11.04 00:16) [5]
Ого как безапеляционно! Спорить не буду. Возможно у тебя есть какие то аргументы. Но если после 3-х лет безупречной работы в запрос внесено единственное изменение и програма начала вываливаться через раз - другой с ошибкой:A fatal exception occurred during the execution of a user defined function. Access violation. The code attempted to access a virtual address without privilege to do so, что можно подумать?
А изменение всего то вместо select u.Name... поставил select strreplace(strreplace(u.NAME,"І","I"),"і","i") Name,...
← →
Johnmen © (2004-11-24 13:39) [7]>Vn (24.11.04 13:11) [6]
Там смайлик в конце.
>програма начала вываливаться через раз - другой
Значит на раз - нормально, работает без ош., на два - ошибка ?
Приводи конкретный вызов ф-ии, когда ошибка, со значениями передаваемых параметров. Для начала.
PS
Если, например, я получаю AV in kernel32.dll, я не буду говорить, что ф-ии это длл глючат. Скорее я скажу, что глючат модули памяти...
← →
Digitman © (2004-11-24 14:38) [8]
> в запрос внесено единственное изменение
странное, надо заметить, "изменение" : заменить все "I" на те же самые "I", а потом в результ.строке попытаться изменить "i" на те же самые "i" ...
смысл всего этого ? или решил просто поэкспериментировать ?
← →
Vn (2004-11-24 14:50) [9]Johnmen © (24.11.04 13:39) [7]
Да именно так и работает. Через раз. И вываливается в разных местах во время прохода проги по набору данных. На разных записях. Не совсем понимаю что тут еще можно выкладывать. Код не менялся да и большой он, а все изменения были лишь в запросе, добавлением вышеуказанной функции. Так что получается не на что грешить окромя функции или кривых рук ))). Да и ексепшин дело рук сервера ІВ, а не програмы.
з.ы. если можешь посоветуй другую библиотеку для проверки
← →
Vn (2004-11-24 14:55) [10]Digitman © (24.11.04 14:38) [8]
Там меняется украинское І на англ., большое и маленькое
← →
Digitman © (2004-11-24 16:59) [11]
> Vn (24.11.04 14:55) [10]
хорошо.
предположим, идея твоя имеет право на жищнь, но не изобразима здесь визуально и я ее не понял сразу ..
но что мешает вызов проблемной UDF заключить в блок контроля исключений ? с целью удостовериться в факте возбуждения искл-я именно в UDF?
← →
Vn (2004-11-24 18:41) [12]Digitman © (24.11.04 16:59) [11]
У меня приблизительно так и есть.
Грубо:
Try
IBQuery1.sql.add("select UDFunction(nnnn) ...
IBQuery1.open;
while not IBQuery1.eof do begin
...
к.т1
...
...
к.тN
IBQuery1.next;
end;
except
on aa:exception do begin
ShowMessage(aa.Message+IBQuery1.Fields[1].asstring+ к.т...);
end;
end;
Исключение возникает всякий раз в разных контрольных точках и на разных записях НД.
← →
Digitman © (2004-11-24 18:59) [13]
> Vn (24.11.04 18:41) [12]
ты меня не понял ..
имелась ввиду конструкция в теле SP/триггера :
begin
..
when чего-то_там ..
..
end
← →
Vn (2004-11-24 20:11) [14]Digitman © (24.11.04 18:59) [13]
Теперь понял.
SP/триггер я не стал создавать, а просто поганял чистый селект в борландовском SQL Explorer. Та же ошибка после выполнения запроса и попытке перейти на последнюю запись (т.е. FetchAll). Появляется в среднем каждый 2-3-й раз. Постараюсь порешать другими способами.
Всем спасибо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c