Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Bilder aus DBase Datei anzeigen lassen (https://www.delphipraxis.net/57635-bilder-aus-dbase-datei-anzeigen-lassen.html)

schildi 24. Nov 2005 13:23

Datenbank: DBase und MySQL • Zugriff über: ODBC

Bilder aus DBase Datei anzeigen lassen
 
Hi,


ich schreibe zur Zeit mit Delphi5 ein Programm, um Exportdateien aus einer Datenbank von Microtech ("BüroPlus") in eine MySQL Datenbank einzupflegen. Sämtliche Text-, Integer und Gleitkommazahlen funktionieren problemlos, was mir noch Probleme macht ist das Exportieren der Bilder:

Wenn ich das Bild exportiere erhalte ich es in der DBase (*.DBF) Datei als BLOB. Dieses BLOB kann ich einfach nicht auslesen. Wenn ich diese Komponente (DBImage) aber verwende, bekomme ich als Wert nur den Spaltennamen oder gar nichts angezeigt.

Meine Frage ist jetzt: Gibt es eigentlich verschiedene Arten von DBase Datenbanken (nicht nur dB3 und dB4)? Und habt Ihr irgendwelche Ideen, wie ich Die Bilder da rausbekomme? Ich möchte Sie dann als jpeg oder bmp mit generiertem Namen und fester Größe in einem Ordner speichern (das klappt auch, nur eben das BLOB auslesen nicht.... AAAAAAAHHHH....) Natürlich habe ich bevor den Post hier geschrieben habe, schon ein paar Stunden gegoogelt und ein paar HowTos ausprobiert....Alles leider erfolglos. :wall:

Vielen Dank für Eure Mühe. Ich gehe weiter in die Tischkante beissen.

MfG
Chris

:gruebel:

shmia 24. Nov 2005 13:49

Re: Bilder aus DBase Datei anzeigen lassen
 
Zitat:

Zitat von schildi
Meine Frage ist jetzt: Gibt es eigentlich verschiedene Arten von DBase Datenbanken (nicht nur dB3 und dB4)?

Gerade bei BLOB Felder gibt viele Unterschiede, da die Blobdaten in einer eigenen Datei (*.DBT) gepeichert werden. Es gibt min. 2 versch. Formate.
Da gab's dann auch noch Varianten für Clipper,...

Du musst zunächst die BLOB-Daten auf Platte speichern ohne dich darum zum Kümmern, in welchem Format die Daten vorliegen:
Delphi-Quellcode:
x := 0;
query1.SQL.Text := ' SELECT Feld1, Blobfeld FROM '+'tabelle.dbf';
query1.open;
while not query1.Eof do
begin
   (query1.FieldByName('Blobfeld') as TBlobField).SaveToFile('C:\'+IntToStr(x)+'.dat');
   query1.Next; Inc(x);
end;
So solltest du auf jeden Fall die (Brutto-) Daten erhalten.
Danach musst du die erhaltenen Dateien analysieren.
Evtl. sind vor den eigentlichen Nutzdaten noch beschreibende Header gespeichert.

schildi 24. Nov 2005 15:38

Re: Bilder aus DBase Datei anzeigen lassen
 
Hi,

vielen Dank für Deine schnelle Antwort. Jetzt bin ich schon mal schlauer was BLOB Daten angeht. Leider stürzt das Programm mit der Fehlermeldung "Ungültige Typenumwandlung" ab.

Hier ist nochmal mein Testquellcode:

Delphi-Quellcode:
         x := 0;


         SQLQuery.SQL.Text := ' SELECT KUBEZ1, BILD FROM bilder.dbf;';
         SQLquery.open;

         while not SQLquery.Eof do
         begin
              (SQLquery.FieldByName('BILD') As TBlobField).SaveToFile('C:\'+IntToStr(x)+'.dat');
              SQLquery.Next;
              Inc(x);
         end;
Vielen Dank nochmal für Deine schnelle Hilfe.

MfG
Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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