![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Строковые функции хранимых процедур Interbase [IB6.x]
ss300 © (2004-05-15 18:02:00)а где можно достать список сабж ? меня в частности интересует
типа SUBSTR или Copy в дельфи
спасибо
Desdechado (2004-05-19 18:14:00) [1]самодельные библиотеки - осторожно, они могут легко "завалить" сервер
возьмите проверенные RFunc или FreeUDFLib на www.ibase.ru
kaif (2004-05-16 14:35:00) [2]Нужно посмотреть разные UDF library и подключить какие-то функции из них к конкретной базе данных, объявив их как функции.
Например, выполнить такую команду:
DECLARE EXTERNAL FUNCTION SUBSTR
CSTRING(80), SMALLINT, SMALLINT
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';
Такое объявление "включает" функцию и мененм IB_UDF_substr из ib_udf.dll под именем SUBSTR в базу данных. Сама dll должна лежать в директории \udf. Загрузка dll произойдет динамически при первом же использовании функции, например в SQL-запросе.
Существуют еще dll-ы независимых производителей.
Можно и самому в Delphi написать такую dll с нужной функцией. Важно использовать соглашение вызова cdecl, в объявлении в БД (если работаешь со строками) использовать FREE_IT и в самой dll задействовать стандартный менеджер памяти IB из ib_util.dll (если нужно аллокировать память, например, для хранения строки типа PChar):
function ib_util_malloc(l: integer): pointer; cdecl; external 'ib_util.dll';
Johnmen (2004-05-15 18:10:00) [3]Встроенных в IB6.x нет.