![]() |
Datenbank: Firebird • Version: 1.5 und 2.1 • Zugriff über: verschieden
Firebird UDF unter Lazarus
Hallo,
ich versuche gerade einige Funktionen als UDF für Firebird2.1 64Bit in Lazarud umzusetzen. Klappt soweit ganz gut. Nur mit den Strings habe ich so meine Probleme. Benutzt man nun grundsätzlich PChar, muss mann Speicher alloziieren und mit FREE_IT freigeben, und so weiter. Alle Tutorials die ich zu dem Thema gefunden habe, sind steinalt. Kann mir jemand von euch vielleicht weiterhelfen? Danke im Voraus Sascha |
Re: Firebird UDF unter Lazarus
Da hat sich nichts geändert. Die "steinalten" Tuts sollten eigentlich immer noch gültig sein.
|
Re: Firebird UDF unter Lazarus
Das bedeutet das hier
Delphi-Quellcode:
und das hier
function UpperChar(const p:PChar):PChar; cdecl;
{ DECLARE EXTERNAL FUNCTION UpperChar CString(255) RETURNS CString(255) FREE_IT ENTRY_POINT 'UpperChar' MODULE_NAME 'MyUDF' } var s:string; begin s:=STRING(p); s:=AnsiUpperCase(s); Result := ib_util_malloc(Length(s)+1); StrPCopy(Result, s); end;
Delphi-Quellcode:
wäre eine gute Vorlage?
function AddStr(const aChar1, aChar2, aChar3:PChar):Pchar;
cdecl; { DECLARE EXTERNAL FUNCTION AddStr CString(50), CString(50), CString(1) RETURNS CString(101) FREE_IT ENTRY_POINT 'AddStr' MODULE_NAME 'MyUDF' } var s1, s2, s3,s4:String; begin s1:=STRING(aChar1); s2:=STRING(aChar2); s3:=STRING(aChar3); s4:=s1+s3+s2; Result := ib_util_malloc(Length(s4)+1); StrPCopy(Result, s4); end; Geht das nicht auch anders, als mit ib_util_malloc ? [edit=mkinzler]Code-Tags durch Delphi-Tags ersetzt Mfg, mkinzler[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz