Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

UDF функция замены символов в строке для ІВ 5.5. [IB5.x]


Vn ©   (2004-11-23 15:46:00) 

Мастера не посоветуете нормальную UDF библиотеку, где бы была функция замены символов в строке. До сих пор пользовался rfunc.dll и FreeUDFLib.dll. Но в 1-й функция strreplace глючит, а во 2-й вообще не нашел. Спасибо.


Vn   (2004-11-24 20:11:00) [1]

Digitman ©   (24.11.04 18:59) [13]
Теперь понял.
SP/триггер я не стал создавать, а просто поганял чистый селект в борландовском SQL Explorer. Та же ошибка после выполнения запроса и попытке перейти на последнюю запись (т.е. FetchAll). Появляется в среднем каждый 2-3-й раз. Постараюсь порешать другими способами.

Всем спасибо.


Digitman   (2004-11-24 18:59:00) [2]


> Vn   (24.11.04 18:41) [12]


ты меня не понял ..

имелась ввиду конструкция в теле SP/триггера :

begin
..
when чего-то_там ..
..
end


Vn   (2004-11-24 18:41:00) [3]

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 16:59:00) [4]


> Vn   (24.11.04 14:55) [10]


хорошо.
предположим, идея твоя имеет право на жищнь, но не изобразима здесь визуально и я ее не понял сразу  ..

но что мешает вызов проблемной UDF заключить в блок контроля исключений ? с целью удостовериться в факте возбуждения искл-я именно в UDF?


Vn   (2004-11-24 14:55:00) [5]

Digitman ©   (24.11.04 14:38) [8]
Там меняется украинское І на англ., большое и маленькое


Vn   (2004-11-24 14:50:00) [6]

Johnmen ©   (24.11.04 13:39) [7]
Да именно так и работает. Через раз. И вываливается в разных местах во время прохода проги по набору данных. На разных записях. Не совсем понимаю что тут еще можно выкладывать. Код не менялся да и большой он, а все изменения были лишь в запросе, добавлением вышеуказанной функции. Так что получается не на что грешить окромя функции или кривых рук ))). Да и ексепшин дело рук сервера ІВ, а не програмы.

з.ы. если можешь посоветуй другую библиотеку для проверки


Digitman   (2004-11-24 14:38:00) [7]


> в запрос внесено единственное изменение


странное, надо заметить, "изменение" : заменить все "I" на те же самые "I", а потом в результ.строке попытаться изменить "i" на те же самые "i" ...

смысл всего этого ? или решил просто поэкспериментировать ?


Johnmen   (2004-11-24 13:39:00) [8]

>Vn   (24.11.04 13:11) [6]

Там смайлик в конце.

>програма начала вываливаться через раз - другой

Значит на раз - нормально, работает без ош., на два - ошибка ?
Приводи конкретный вызов ф-ии, когда ошибка, со значениями передаваемых параметров. Для начала.
PS
Если, например, я получаю AV in kernel32.dll, я не буду говорить, что ф-ии это длл глючат. Скорее я скажу, что глючат модули памяти...


Vn   (2004-11-24 13:11:00) [9]

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 00:16:00) [10]

>rfunc.dll ... функция strreplace глючит

Позвольте уличить вас в наглой лжи...
(безотносительно версии сервера)
:)))


Sergey_Masloff   (2004-11-23 21:55:00) [11]

Sergey13 ©   (23.11.04 16:00) [3]
>Да говорят 5.5 одна из самых глючных у Борланда получилась.
Воистину так, они 5.6 всем сразу практически разослали...
>А УДФ - почему бы свою не написать?
И опять соглашусь. Времени 20 минут займет.


Sergey13   (2004-11-23 16:00:00) [12]

Да говорят 5.5 одна из самых глючных у Борланда получилась. А УДФ - почему бы свою не написать?


Vn   (2004-11-23 15:55:00) [13]

А чем ІВ 5.5 плох? Да и задача не космические корабли запускать :)))


Sergey13   (2004-11-23 15:49:00) [14]

А может тебе нормальный сервер поставить?


Наверх

Титульная страница Поиск, карта сайта Написать письмо