IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.
Модератор: kdv
-
Spa_2002
- Сообщения: 28
- Зарегистрирован: 13 май 2005, 15:47
Сообщение
Spa_2002 » 27 янв 2006, 14:44
День добрый .
IB 6.5 Проблема проста как день: нужно в запросе в where выделять подстроку из поля . Где раздобыть dll содержащую нужную функцию и ОПИСАНИЕ конкретно ее(нужной функции из dll) подключения? В каталоге UDF при установке IB лежит какая-то ib_udf.dll , но что в ней содержится, как с этим работать , пока не нашел.
Помогите , кто чем может...?
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 27 янв 2006, 14:48
Langref.pdf, User Defined Functions
-
Spa_2002
- Сообщения: 28
- Зарегистрирован: 13 май 2005, 15:47
Сообщение
Spa_2002 » 30 янв 2006, 13:10
да, кто ищет , тот всегда найдет. На основе книжки Мир IB 3Ed. и статейки UDF за 21 минуту.
создаем в Delphi проект - новую DLL,внутри незамысловатый текст
Код: Выделить всё
library UDF2;
uses
SysUtils;
function malloc(size: integer) : Pointer; cdecl; external 'msvcrt.dll'
function SStr(str1: PChar; var s1: integer; var s2: integer):PChar; cdecl; export;
var Tmp: string;
begin
Tmp:=Copy(str1, s1, s2);
Result:=malloc(length(Tmp)+1);
StrPCopy(Result, Tmp);
end;
exports
SStr;
begin
end.
компилируем , помещаем UDF2.dll в каталог UDF туда , где установлена IB 6
в IB декларируем нашу функцию
Код: Выделить всё
DECLARE EXTERNAL FUNCTION SSTR
CSTRING(254),
INTEGER,
INTEGER
RETURNS CSTRING(254) FREE_IT
ENTRY_POINT 'SStr' MODULE_NAME 'UDF2.dll'
пробуем. работает.