AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi NULL als Rückgabe in UDF
Thema durchsuchen
Ansicht
Themen-Optionen

NULL als Rückgabe in UDF

Ein Thema von borwin · begonnen am 26. Feb 2010 · letzter Beitrag vom 26. Feb 2010
Antwort Antwort
borwin

Registriert seit: 14. Sep 2006
Ort: Rostock
72 Beiträge
 
Delphi 2007 Enterprise
 
#1

NULL als Rückgabe in UDF

  Alt 26. Feb 2010, 18:25
Datenbank: Firebird • Version: 2.x • Zugriff über: native
Hallo,

ich bin gerade beim Schreiben einer udf dll für Firebird 2.x und möchte das sie unter bestimmten Umständen NULL zurück gibt.
Leider habe ich zur Zeit keine Idee wie ich das in Delphi realisieren muss.
Eine udf mit Rückgaben ungleich NULL funktioniert. Hat einer eine Idee oder geht das mit Delphi nicht.

Danke für die Hilfe im voraus

Gruß Borwin
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: NULL als Rückgabe in UDF

  Alt 26. Feb 2010, 18:30
Zitat:
One thing you can't do with UDFs: You can't pass NULLs to them. Likewise, a UDF cannot return a NULL value.
Quelle: http://edn.embarcadero.com/article/27204
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#3

Re: NULL als Rückgabe in UDF

  Alt 26. Feb 2010, 18:39
Hier steht etwas zum Thema:

http://www.firebirdsql.org/manual/nullguide-udfs.html

Rückgabe von NULL wird kurz angesprochen:

Zitat:
If the function result type is a pointer, returning NULL is possible even if receiving NULL isn't.
Habe es aber noch nicht selber versucht
Michael Justin
  Mit Zitat antworten Zitat
borwin

Registriert seit: 14. Sep 2006
Ort: Rostock
72 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: NULL als Rückgabe in UDF

  Alt 26. Feb 2010, 18:41
Danke für die schnelle Antwort.
Bei Firebird ab 2.0 und nur hier können auch udf's NULL zurückgeben. udf's wie FreeadhocUDF haben das.
Bei Interbase ist das nicht möglich.
Da muss es doch auch mit Delphi eine Möglichkeit geben.

Gruß Borwin
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

Re: NULL als Rückgabe in UDF

  Alt 26. Feb 2010, 18:47
Ja gut, wenn es ein Zeiger ist, müsste man ja dann vermutlich nil zurückgeben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
borwin

Registriert seit: 14. Sep 2006
Ort: Rostock
72 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: NULL als Rückgabe in UDF

  Alt 26. Feb 2010, 21:29
So es gibt erste Erfolge zu verzeichnen.
Zitat:
Ja gut, wenn es ein Zeiger ist, müsste man ja dann vermutlich nil zurückgeben.
Bei der Rückgabe von Zeichen mit PChar klappt es.

Result := nil;
zeigt im Ergebnis bei einer Abfrage dann NULL an.

Die UDF muss in Firebird noch folgendermaßen deklariert sein.

SQL-Code:
DECLARE EXTERNAL FUNCTION FUNC_TEST
      CSTRING(1024) NULL
RETURNS CSTRING(254) free_it
ENTRY_POINT 'Func_Test' MODULE_NAME 'funcudf.dll';
Jetzt will ich aber keinen Text zurückgeben sondern einen Zahl (Double) und die soll ggf. auch NULL sein.
Wie mache ich das in Delphi. Mit NIL komme ich da nicht weiter.
Mit Pointer habe keine großen Erfahrungen.

Gruß Hartmuth
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:14 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