![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
Blob filtern
Ich muss euch leider schon wieder nerven...
Ich filtere mein Table
Delphi-Quellcode:
Allerdings muss ich jetzt auch die Table auf Bild (gespeichert in Blob) filtern.
tMit.Filter:= 'Lichtbild= '+ QuotedStr ('');
tMit.Filtered:= true; Allerdings speichert es ja die Bilder nicht in die *.DB sonder in die *.MB Wie filter ich da? thx.4.cmts Lill Jens :coder2: |
Re: Blob filtern
Blobs können (in aller Regel *) nicht gefiltert werden.
Blobdaten sind auch über SQL nicht direkt zugänglich. Man kann also nicht schreiben:
SQL-Code:
Das Laden und Speichern von Blobdaten ist im Vergleich zu anderen Feldern relativ zeitintensiv.
SELECT * FROM Tabelle WHERE Blobfeld = 0x00FFA0A13244290D0A
Du könntest im Event OnFilterRecord den Blob laden und mit Solldaten vergleichen. Wobei ich mich frage wozu man Blobdaten vergleichen möchte. Passbildvergleich ?? *) Manche Datenbanken haben eine Volltext Search Engine |
Re: Blob filtern
Zitat:
Ich will also schauen ob in der Datenbank ein Bild hinterlegt ist. |
Re: Blob filtern
Je nach Definition kannst Du das Bildfeld auf NULL abfragen.
|
Re: Blob filtern
Du könntest auch den Blob auslesen.
Wenn die Grösse des Blobs relativ klein (oder 0) ist, dann wird wohl kein Bild hinterlegt sein. |
Re: Blob filtern
Wie les ich den die größe aus?
oder wie frag ich auf NULL ab? Thx für eure antworten... |
Re: Blob filtern
SQL-Code:
SELECT * FROM Tabelle WHERE Blobfeld IS NOT NULL
|
Re: Blob filtern
Zitat:
|
Re: Blob filtern
Zitat:
Oder hast Du ein anderes Problem? |
Re: Blob filtern
Zitat:
|
Re: Blob filtern
Okay ich hab jetzt ein Query und hab das Query mit meiner DataSource verbunden.
Den SQL Befehl hab ich auch eingetragen
SQL-Code:
allerdings funktioniert der Filter nicht.
SELECT * FROM Mit WHERE Lichtbild IS NOT NULL
Hab ich was vergessen? |
Re: Blob filtern
Welcher Filter jetzt?
|
Re: Blob filtern
Zitat:
|
Re: Blob filtern
Hallo,
dein SQL-Statement ist völlig in Ordnung. Übrigens: Du kannst deine SQL-Statements zuerst in der Borland "Datenbankoberfläche" testen, bevor du sie in dein Programm übernimmst. Grüße vom marabu |
Re: Blob filtern
Zitat:
|
Re: Blob filtern
Dann ist der wert des Blobfeldes auch bei keinem Bild nicht NULL.
|
Re: Blob filtern
Zitat:
danke mkinzler für deine hilfe :thumb: |
Re: Blob filtern
Hallo Lill Jens,
Zitat:
Du kannst das Ereignis "OnFilterRecord" verwenden: Überleg dir, woran du erkennst, ob ein Datensatz ein Bild enthalten kann. z.B. prüf die Länge mit einem Stream
Delphi-Quellcode:
So kannst du mit deinem Code jeden Datensatz prüfen lassen, ob er zu der gefilterten Datenmenge gehören soll.
procedure MeinTableFilterRecord(DataSet: TDataSet;
var Accept: Boolean); var MS: TMemoryStream; begin MS := TMemoryStream.Create; try fieldbyname('Blobfeld').SaveToStream(MS); MS.position:=0; Accept:=MS.Size>100; // so klein wird kein Bild sein finally MS.Free; end; end; Gruß HeDoc |
Re: Blob filtern
Moin,
Zitat:
Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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