Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird/Interbase Blobfilter Doku/Tut auch für Delphi? (https://www.delphipraxis.net/39657-firebird-interbase-blobfilter-doku-tut-auch-fuer-delphi.html)

urs.liska 5. Feb 2005 22:23


Firebird/Interbase Blobfilter Doku/Tut auch für Delphi?
 
Hallo DPler,

hat jemand schon mal Erfahrungen mit Delphi-programmierten "Blob Filtern" bei Firebird bzw. Interbase gemacht?
Ich bin eher zufällig darauf gestoßen, weil ich auf der Suche nach einer Lösung für mein Problem bin, rtf-Felder in plaintext-Felder umzuwandeln (Thread).
Für das konkrete Problem sind diese Filter wohl nicht geeignet, aber grundsätzlich ist es eine sehr interessante Sache.

Leider habe ich keine Anleitung/Hilfe/Doku gefunden, die sich nicht auf C oder C++ bezieht (in "The Firebird Book" wird man auf die IB6.0-Doku verwiesen und die zielt auf C-Programmierer ab). Und ehrlich gesagt ist die ganze Angelegenheit mit UDFs und Blobs für mich noch so suspekt, dass ich diese Hürde nicht so einfach nehmen kann.

Es wäre also toll, wenn mir jemand einen Hinweis auf geeignete Lektüre für Delphi-Programmierer geben oder mir direkt ein paar Verständnishilfen zum Thema Funktionsdeklaration und Datenübernahme der Blobs geben könnte.

MfG
Urs

P.S. für die, die nicht wissen, was Blobfilter bei Firebird sind
(vielleicht interessiert sich ja dann jemand dafür, beschäftigt sich damit und kann mir dann auf die Sprünge helfen):
Blobfilter sind spezielle UDF-Sonderfälle, die immer dann implizit aufgerufen werden, wenn Firebird es mit verschiedenen Blob Subtypes zu tun hat.
Wenn man also eine Spalte A mit Blob Subtype -1 und eine Spalte B mit Blob Subtype -2 hat und etwa "UPDATE tabelle SET A = B" aufruft, wird B automatisch in Typ A umgewandelt.
Was man wohin umwandelt, hat man völlig in der Hand (man muss natürlich den entsprechenden Algorithmus zur Hand oder entsprechende Programme aufrufbar haben). Ein paar Möglichkeiten:
XML->RTF, HTML, Word...
Kommentierter Quelltext->Dokumentation
Deutsch->Englisch...

Hansa 6. Feb 2005 02:16

Re: Firebird/Interbase Blobfilter Doku/Tut auch für Delphi?
 
Eventuell könnte bei FIBplus so was drin sein. Dieser Tage kam eine email wegen neuem FIBplus 6.1 und ich erinnere mich noch, daß zumindest die Wörter Blob-Filter und UDF darin vorkamen. Leider wurde die email aber nach einmaligem Lesen sofort vernichtet. :shock: Da der Entwickler Russe ist, ist die Unicode-Unterstützung relativ weit vorangeschritten. Und wenn ich das sehe, wie die mit Zeichensätzen usw. hantieren, dann könnte ich mir vorstellen, daß sich dies auch auf Blobs auswirkt.

Nun verstehe ich allerdings überhaupt nicht, was du da vor hast und wozu ein Blob-Filter gut sein soll, aber wie gesagt, zumindest das Wort kam in der mail vor. :mrgreen:

urs.liska 6. Feb 2005 08:51

Re: Firebird/Interbase Blobfilter Doku/Tut auch für Delphi?
 
Hallo Hansa,
danke für den Tipp, werde dem mal nachgehen.

Blob-Filter sind ein Mechanismus zur impliziten Typumwandlung.
Wenn ich z.B. den Subtype -10 als "rtf" festlege und einen Blob-Filter von "subtype -10 zu subtype 1(text)" programmiere, kann ich z.B. Folgendes machen: In einer Stored Procedure deklariere ich eine Blob-Variable vom Subtyp 1. Der Befehl "SELECT rtf_feld FROM tabelle into :plaintext_blob" ruft dann implizit den Blob-Filter auf und konvertiert das Blob aus Datenbank- und Applikationssicht transparent.
Denkbar wäre auch, eine gespeicherte Grafikdatei in verschiedenen Grafikformaten auszulesen (denkbar ist alles, was mit Blob-Konvertierung zu tun hat und mit Delphi zu machen ist).

Ich hoffe, das vermittelt einen Eindruck davon, was man mit Blob-Filtern tun kann. Letztlich nichts, was nicht auf anderem Wege auch zu machen ist; aber ich finde es eine sehr elegante Lösung.

MfG
Urs

Lemmy 7. Feb 2005 06:05

Re: Firebird/Interbase Blobfilter Doku/Tut auch für Delphi?
 
Hi urs,

also von Blob-Filtern habe ich bisher nichts gehört oder gelesen (so weit bin ich mit dem Buch noch nicht), aber es hört sich verdammt gut an. Wenn ich diese Woche mal Zeit habe, schaue ich mir die Doku mal an...

Grüße
Lemmy

urs.liska 7. Feb 2005 07:15

Re: Firebird/Interbase Blobfilter Doku/Tut auch für Delphi?
 
Liste der Anhänge anzeigen (Anzahl: 2)
@Hansa:
FIBPlus bringt leider nichts, Blob-Filter sind dort etwas anderes :-(
Trotzdem danke fürs Aufpassen.

@Lemmy:
Das wäre prima. In "Helen's Book" wird leider zur Programmierung gar nichts gesagt, sondern eben auf die InterBase-Dokumentation verwiesen.
Ich habe das entsprechende Kapitel mal angehängt...

MfG
Urs

[Edit]. Zweites Kapitel angehängt [/Edit]

Robert_G 7. Feb 2005 11:49

Re: Firebird/Interbase Blobfilter Doku/Tut auch für Delphi?
 
Zitat:

Zitat von Hansa
Eventuell könnte bei FIBplus so was drin sein. Dieser Tage kam eine email wegen neuem FIBplus 6.1 und ich erinnere mich noch, daß zumindest die Wörter Blob-Filter und UDF darin vorkamen. Leider wurde die email aber nach einmaligem Lesen sofort vernichtet. :shock: Da der Entwickler Russe ist, ist die Unicode-Unterstützung relativ weit vorangeschritten. Und wenn ich das sehe, wie die mit Zeichensätzen usw. hantieren, dann könnte ich mir vorstellen, daß sich dies auch auf Blobs auswirkt.

:shock: Hast du irgendwie zu heiß geduscht heute? Neuronen mögen Temperaturen über 42° nicht sehr gerne. :mrgreen:

Zitat:

Zitat von Hansa
Nun verstehe ich allerdings überhaupt nicht, was du da vor hast und wozu ein Blob-Filter gut sein soll, aber wie gesagt, zumindest das Wort kam in der mail vor. :mrgreen:

Ich würde mal grob schätzen, dass er BinaryLargeOBjects filtern will. :P
Eine Idee wäre eine ÙDF, die einen BLOB und einen String schluckt. In der UDF kannst du ja dann den Suchtext im BLOB suchen und als Rückgabewert meinetwegen die Position ausspucken.

urs.liska 7. Feb 2005 11:55

Re: Firebird/Interbase Blobfilter Doku/Tut auch für Delphi?
 
Zitat:

Zitat von Robert_G
Zitat:

Zitat von Hansa
Nun verstehe ich allerdings überhaupt nicht, was du da vor hast und wozu ein Blob-Filter gut sein soll, aber wie gesagt, zumindest das Wort kam in der mail vor. :mrgreen:

Ich würde mal grob schätzen, dass er BinaryLargeOBjects filtern will. :P
Eine Idee wäre eine ÙDF, die einen BLOB und einen String schluckt. In der UDF kannst du ja dann den Suchtext im BLOB suchen und als Rückgabewert meinetwegen die Position ausspucken.

Ne, das will ich nicht. Das wäre ungefähr das, was man auch mit FIBPlus oder IBO machen kann.
In meinem zweiten Post dieses Threads habe ich versucht zu erklären, was Blob-Filter bei Firebird sind.

Urs

Robert_G 7. Feb 2005 12:06

Re: Firebird/Interbase Blobfilter Doku/Tut auch für Delphi?
 
Zitat:

Zitat von urs.liska
Ne, das will ich nicht. Das wäre ungefähr das, was man auch mit FIBPlus oder IBO machen kann.
In meinem zweiten Post dieses Threads habe ich versucht zu erklären, was Blob-Filter bei Firebird sind.

Ok, so weit bin ich mit FB auch noch nicht. ;)
Ich dachte ihr hängt euch immer noch an solchen Problemchen auf.
FB kennt ja zum Bsp. kein CLOB (CharacterLargeOBJect) in dem man mit "like" suchen kann. ;)
Schlagt mich wenn mein Informationsstand schon lange überholt ist...

Was du da ausgegraben hast klingt aber interessant, solange es keine Performancefalle ist. :gruebel:

Lemmy 7. Feb 2005 12:12

Re: Firebird/Interbase Blobfilter Doku/Tut auch für Delphi?
 
HI,

@Robert: Eine Performace-Falle ist das nur, wenn der Programmierer des Filters nen Fehler macht ;-))

Ich habe die DOku mal kurz überflogen. Grundsätzlich scheint das Teil wie ne UDF zu funktionieren, d.h. man definiert den Blobfilter, dieser Filter übergibt den Input-Blob an die Filterfunktion, dort kannst Du dann damit anstellen was auch immer du machen willst und schickst das Ergebnis wieder zurück zum Filter.

Ich werde mir das zuhause mal anschauen, wird aber ien paar Tage dauern....

GRüße
Lemmy

urs.liska 7. Feb 2005 13:02

Re: Firebird/Interbase Blobfilter Doku/Tut auch für Delphi?
 
Zitat:

Zitat von Lemmy
Grundsätzlich scheint das Teil wie ne UDF zu funktionieren, d.h. man definiert den Blobfilter, dieser Filter übergibt den Input-Blob an die Filterfunktion, dort kannst Du dann damit anstellen was auch immer du machen willst und schickst das Ergebnis wieder zurück zum Filter.

Das stimmt soweit, mir ist nur nicht klar, was ich mit den verschiedenen "Filter-Aktionen" machen muss (ob ich also für die acht Aktionen jeweils einen Code-Abschnitt schreiben muss). Auch verstehe ich nicht, was genau passiert, wenn ein Blob in mehreren Segmenten geladen werden soll. Mir scheint, die Filter-Funktion wird für jedes Segment einzeln aufgerufen - keine Ahnung, wie damit umzugehen ist...
Zitat:

Zitat von Lemmy
Ich werde mir das zuhause mal anschauen, wird aber ien paar Tage dauern....

Würde mich freuen :)
Urs

P.S. Ich habe jetzt noch einen weiteren Beispielcode gefunden, der die Sache etwas klarer werden lässt. Trotzdem bin ich leider nicht in der Lage, das nach Delphi zu übersetzen. Vieles geht ja, aber bei manchem bin ich doch sehr unsicher.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:25 Uhr.
Seite 1 von 2  1 2      

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