Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.10;
Скачать: CL | DM;

Вниз

Не работает UDF   Найти похожие ветки 

 
i   (2002-09-19 10:15) [0]

Создал DLL:

library MyUDF;
uses
SysUtils,
Classes;
{$R *.res}

function DelSubStr(Str, SubStr: PChar): PChar; cdecl; export;
var
S : string;
begin
Result := nil;
StrCopy(Result, Str);
if StrPos(Result, SubStr) <> nil then begin
S := string(Result);
Delete(S, Pos(string(SubStr), S), StrLen(SubStr));
Result := PChar(S);
end;
end;

exports
DelSubStr;

begin
end.

Положил DLL в ..\InterBase\bin\

Объявил ее в IB:

DECLARE EXTERNAL FUNCTION DELSUBSTR
VARCHAR(100),
VARCHAR(100)
RETURNS CSTRING(100) FREE_IT
ENTRY_POINT "DelSubStr" MODULE_NAME "MyUDF";

Деляю запрос:

update operation set ind_priv = delsubstr(ind_priv, user)

Выдается сообщение: Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements. connection lost to database.

В ЧЕМ ТУТ ОШИБКА?????????????
Помогите пожалуйста, уважаемые мастера.


 
Johnmen ©   (2002-09-19 11:05) [1]

Для начала - DLL должна лежать в ..\InterBase\Udf


 
i   (2002-09-19 11:39) [2]

Пробовал и туда


 
Desdechado ©   (2002-09-19 19:24) [3]

ошибка в том, что при работе со строками используется борландовский менеджер памяти. А ИБ скомпилирован на MS C++. Отсюда конфликт и завал сервера. Используй malloc из msvcrt.dll для выделения памяти под новую строку.
и не VARCHAR(100) а CSTRING(100)



Страницы: 1 вся ветка

Текущий архив: 2002.10.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
1-31720
Dmitry Toropov
2002-10-01 09:49
2002.10.10
ADO, auto increment field


1-31674
Aleksandr
2002-09-27 15:02
2002.10.10
Как мне в консольном приложении выводить текст?


1-31702
lety
2002-09-30 22:59
2002.10.10
запуск приложения один раз


8-31916
froddo_
2002-06-10 12:38
2002.10.10
Глюк


3-31626
kserg@ukr.net
2002-09-19 14:36
2002.10.10
Можно ли в DB DeskTop-e открыть ExcelBook как обычную таблицу?