AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi udf in firebird deklarieren
Thema durchsuchen
Ansicht
Themen-Optionen

udf in firebird deklarieren

Ein Thema von sancho1980 · begonnen am 17. Jun 2006 · letzter Beitrag vom 18. Jun 2006
Antwort Antwort
Seite 2 von 2     12   
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: udf in firebird deklarieren

  Alt 18. Jun 2006, 10:44
Hast du die UDF per SQL-Skript in die DB eingebunden?
Markus Kinzler
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#12

Re: udf in firebird deklarieren

  Alt 18. Jun 2006, 10:51
ja, die ist deklariert...mit der deklaration gibt's keine probleme; sie wird auch in ixexpert aufgelistet...
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: udf in firebird deklarieren

  Alt 18. Jun 2006, 10:59
Bei Import/Export von Dll-Funktionen wird Groß-/Kleinschreibung unterschieden.
Ist die Bezeichnung bei beiden gleich?
Markus Kinzler
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#14

Re: udf in firebird deklarieren

  Alt 18. Jun 2006, 11:48
Zitat von mkinzler:
Bei Import/Export von Dll-Funktionen wird Groß-/Kleinschreibung unterschieden.
Ist die Bezeichnung bei beiden gleich?
Ja, schau's dir bitte mal an!

Danke,

Martin
Angehängte Dateien
Dateityp: rar dlls_121.rar (43,4 KB, 5x aufgerufen)
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: udf in firebird deklarieren

  Alt 18. Jun 2006, 11:57
Deine Dll exportiert ja garnichts. Du mußt die Funktion auch exportieren.
Markus Kinzler
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#16

Re: udf in firebird deklarieren

  Alt 18. Jun 2006, 15:27
tatsächlich
das muss mir durch die lappen gegangen sein, als ich die änderungen vom marabu übernommen hab.
aber es geht trotzdem nicht
ich konstatiere nochmal:
-die dll ist jetzt so, wie ich sie jetzt noch einmal hochgeladen hab
-meine firebird.conf hab ich auch mal hochgeladen
-MyFirebirdUDFs.dll hab ich nach C:\Programme\Firebird\Firebird_1_5\UDF kopiert
-danach hab ich den fb-server gestoppt und gestartet
-danach hab ich in ibexpert meine udf folgendermaßen deklariert:

SQL-Code:
DECLARE EXTERNAL FUNCTION REPLACE
    CSTRING(100), CSTRING(100), CSTRING(100)
RETURNS CSTRING(100) FREE_IT
ENTRY_POINT 'Replace' MODULE_NAME 'MyFirebirdUDFs'
Das schien erstmal zu klappen:

------ Performance info ------
Prepare time = 0ms
Execute time = 0ms
Current memory = 955.924
Max memory = 1.035.488
Memory buffers = 2.048
Reads from disk to cache = 0
Writes from cache to disk = 3
Fetches from cache = 39

-dann versucht, folgendes auszuführen:
select replace('hallo', 'al', 'la') from rdb$database; Fehler:

Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Access to UDF library "MyFirebirdUDFs.DLL" is denied by server administrator.

Hat irgendjemand es geschafft, meine UDF zum Laufen zu kriegen? Wo liegt mein verdammter Fehler? Überall im Netz steht, es sei so 'unwahrscheinlich einfach' UDF's zu schreiben - wenn das nochmal einer sagt, dann
Angehängte Dateien
Dateityp: rar dlls_198.rar (43,7 KB, 8x aufgerufen)
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: udf in firebird deklarieren

  Alt 18. Jun 2006, 15:35
Besser so

Delphi-Quellcode:
library MyFirebirdUDFs;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }

  

uses
  SysUtils,
  Classes,
  Strings in 'Strings.pas';

{$R *.res}
exports Replace name 'Replace';
begin
end.
Was steht in der Konfig?
Dies
Code:
UdfAccess = Restrict UDF
?
Markus Kinzler
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#18

Re: udf in firebird deklarieren

  Alt 18. Jun 2006, 15:52
oh
Zitat von mkinzler:

Was steht in der Konfig?
Dies
Code:
UdfAccess = Restrict UDF
?
Ohmannomann, da stand

Code:
UdfAccess = Restrict
Woher sollt ich wissen, dass da noch UDF dahinter muss?

Dank dir,

martin
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz