Announcement

Collapse
No announcement yet.

UDF-Problem bei String-Typen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • UDF-Problem bei String-Typen

    Hallo!<br>
    <br>
    Ich habe folgendes Problem:<br>
    Bei der Verwendung von UDF's die mit Strings arbeiten bekomme ich die Fehlermeldung "invalid request BLR offset XY, function ABC not defined, modulname or entrypoint could not be found".<br>
    <br>
    In meinem speziellen Fall handelt es sich um die Funktionen substr (aus ib_udf.dll) oder Mid (aus FreeUDFLib.dll) und LeftStr (aus ib_udf.dll).<br>
    <br>
    Die Deklaration sieht für substr so aus:<br>
    DECLARE EXTERNAL FUNCTION SUBSTR <br>
    CSTRING(80) CHARACTER SET ISO8859_1, SMALLINT, SMALLINT<br>
    RETURNS CSTRING(80) CHARACTER SET ISO8859_1 FREE_IT<br>
    ENTRY_POINT "IB_UDF_substr" MODULE_NAME "ib_udf";<br>
    <br>
    Der Aufruf, der den Fehler liefert sieht so aus:<br>
    select substr(aufmachung_nr,1,2) from aufmachung<br>
    aufmachung_nr ist vom Typ VARCAHR(9)<br>
    <br>
    Die dll's liegen auf dem Server im Verzeichnis \bin<br>
    System:
    IB-Version 5.6, Server:WinNT 4(SP6a), client:Windows 2000 Pro (SP2).<br>
    <br>
    Alle Datumsfunktionen aus der FreeUDFLib.dll (AgeInDays, Quarter etc.) funktionieren.<br>
    <br>
    Was mache ich falsch?

  • #2
    Hallo,<br>
    wie wird die Funktion übertragen ? In meinem Projekt habe ich obige Meldung (Invalid request BLR offset) häufiger bekommen, wenn ich proceduren und funktionen über ein Dataset oder Query angelegt habe. Dabei muß der Parametercheck ausgeschaltet werden, da sonst die Parameter als Fragezeichen und nicht als Text angelegt werden.<br>
    Über die IB-Console konnte ich die divversen Fragezeichen vor allem in meinen stored-proc's sehen.

    Gruss G

    Comment


    • #3
      Hallo Wolfgang,
      überprüfe mal, ob in ..\Interbase\Bin die Datei ib_util.dll vorhanden ist. Ich glaube, bei der Standardinstallation von 5.6 wird diese entweder ins lib Verzeichnis oder gar nicht kopiert, sie gehört aber ins bin Verzeichnis und wird benötigt, wenn Du UDFs verwendest, die mit FREE_IT deklariert werden. Deine Fehlermeldung deutet allerdings eher auf eine Ursache in der Art hin, wie Günter sie angesprochen hat.

      Gruss
      K

      Comment


      • #4
        Hallo Günter,<br>
        die Funktion wird über das ISQL-Fenster (Console) deklariert.<br&gt

        Comment

        Working...
        X