Delphi-PRAXiS
Seite 4 von 6   « Erste     234 56      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Bilder in die Paradoxtabelle speichern ? (https://www.delphipraxis.net/66671-bilder-die-paradoxtabelle-speichern.html)

mirage228 4. Apr 2006 19:43

Re: Bilder in die Paradoxtabelle speichern ?
 
Hi,

hast Du die Unit JPEG in Deiner Uses-Liste?

mfG
mirage228

Vader 4. Apr 2006 20:08

Re: Bilder in die Paradoxtabelle speichern ?
 
hallo,

JPEG habe ich in uses aufgenommen,dann hat er auch den code kompiliert
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
   blob : TMemoryStream;
  jpeg : TJPEGImage;
   bmp : TBitmap;
   s: String;
begin
    blob := TMemoryStream.Create();
    jpeg := TJPEGImage.Create;
    bmp := TBitmap.Create;
   TRY
     if OpenpictureDialog1.Execute then
     begin
          s :=ExtractFileExt(OpenPictureDialog1.FileName);
          if uppercase(s) = '.BMP' then
          begin
             bmp.loadfromfile(OpenPictureDialog1.FileName);
             blob.Clear;
             bmp.saveToStream(blob);
          end else
          begin
            jpeg.LoadFromFile(OpenPictureDialog1.FileName);
             blob.Clear;
            jpeg.SaveToStream(blob);
          end;
        //  query1.SQL.Text := 'Update Tabelle Set Foto = :Bild where ID = :id';
          query1.SQL.Text := 'Insert into losch( Tennis) values( :Bild);';

          query1.ParamByName('bild').LoadFromStream(blob,ftGraphic);
       //   query1.ParamByName('id').AsInteger := DM.FahrerID.AsInteger;
          query1.ExecSQL;
     end;
   Finally
      freeandnil(blob);
      freeandnil(jpeg);
      freeandnil(bmp);
      DBImage1.LoadPicture;
   END
end;
er läßt mich auch posten, aber wenn ich das jpeg dann in der dbimage anschauen will kommt der fehler


Delphi-Quellcode:
bitmap ist ungültig
mfg vader

hanspeter 5. Apr 2006 06:46

Re: Bilder in die Paradoxtabelle speichern ?
 
Mit Paradox und Blob sollte man sehr vorsichtig sein.
Damit bin ich schon vor 8 Jahren in der Hochzeit der BDE auf die Nase gefallen.
Paradox hat einen nie beseitigten Handlingfehler bei Blobs. Irgendwann kommt dann die Meldung
Blob kann nicht gelesen werden und ist dann irreversibel zerschossen.
Wenn die Blob unbedingt in der Datenbank gespeichert werden soll, dann sollte man auf eine andere
Datenbank ausweichen. Firebird hat z.B. keinerlei Probleme mit Blob.

Gruß Peter

mikhal 5. Apr 2006 07:01

Re: Bilder in die Paradoxtabelle speichern ?
 
Trotz Einbinden der Unit Jpeg ist es mir noch nie gelunden, Jpegs direkt aus einem BLOB-Feld in TDBImage anzuzeigen. Ich erhielt immer eine Fehlermeldung (keine gültige Bitmap oder ähnlich). Deshalb verwende ich immer TImage und weise TImage im Ereignis AfterScroll des Datasets das Jpeg-File aus dem Blob-Feld zu.

Ansonsten kann auch ich nur anraten, bei Paradox keine Blob-Felder zu verwenden, weil auch ich nur schlechte Erfahrungen damit gemacht habe.

Grüße
Mikhal

Vader 5. Apr 2006 11:46

Re: Bilder in die Paradoxtabelle speichern ?
 
ok,überredet
ich lasse die finger mit dem abspeichern in die paradox !!!
aber wie geht das, das ich nur den pfad in der datenbank habe zu dem foto ??
MFG VADER

mikhal 5. Apr 2006 11:58

Re: Bilder in die Paradoxtabelle speichern ?
 
Delphi-Quellcode:
function ExtractFilePath(const FileName: string): string;
In der Unit SysUtils findest du diese Funktion, sie extrahiert den Pfad aus dem Dateinamen.

Grüße
Mikhal

marabu 5. Apr 2006 12:14

Re: Bilder in die Paradoxtabelle speichern ?
 
Da liegt wohl ein Missverständnis vor - nicht der absolute Pfadanteil einer Photodatei wird in der Datenbank gespeichert, sondern der Dateiname, allenfalls mit einem relativen Pfadanteil, sollte gespeichert werden. Der absolute Bezugspunkt im Dateisystem sollte als Konfigurationsparameter zugänglich sein, so dass man die Bilddateien nach Bedarf im Dateisystem verschieben kann, ohne dass die Referenzen in der Datenbank ungültig werden.

Grüße vom marabu

Vader 5. Apr 2006 16:50

Re: Bilder in die Paradoxtabelle speichern ?
 
hallo marabu,
hast du ein beispiel wie das ausschaut ?

Zitat:

sondern der Dateiname, allenfalls mit einem relativen Pfadanteil, sollte gespeichert werden. Der absolute Bezugspunkt im Dateisystem sollte als Konfigurationsparameter zugänglich sein, so dass man die Bilddateien nach Bedarf im Dateisystem verschieben kann, ohne dass die Referenzen in der Datenbank ungültig werden.

mfg vader

mkinzler 5. Apr 2006 18:02

Re: Bilder in die Paradoxtabelle speichern ?
 
Du entscheidest dich für ein Verzeichnis, in das du die Bilder ablegen willst, in die datenbank speicherst du dann nicht den absoluten Dtanpfad sondern nur relativ zu diesem Verzeichnis. Z.B. du hast dich entschieden, das die Bilder relativ zu 'c:\tennis' abzulegen. Ein Bild liegt nun auf c:\tennis\maenner\boris.jpg'. dann schreibst du in die Datenbank 'maenner\boris.jpg'. Den Pfad c:\tennis schreibst du zusammen mit den Datenbankparametern z.B. in eine Ini oder XML-Datei.

Vader 5. Apr 2006 18:21

Re: Bilder in die Paradoxtabelle speichern ?
 
das ist alles so kompliziert diese datenbankprogrammierung, jetzt brauche ich eine xml datei oder ini mit den
datenbankparameter,

eddy schreibt:
Zitat:

Da es immer wieder aus verschiedensten Gründen mit Paradox-Datenbanken zu Problemen kommen kann, vertrete ich die Meinung, nur den Verweis auf den Speicherort (LW:\Path\Filename) in einem ftString in der Paradox-Datenbank zu hinterlegen und die Bilder in einem entsprechenden Verzeichnis LW:\meinProgramm\Bilder zu hinterlegen. Ob dabei die Bilder ihren eigentlichen Namen behalten oder automatisch ein Name generiert wird, kann man ja festlegen.

ist das das gleiche, und brauche ich dort auch eine ini oder xlm datei ?
mfg vader


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr.
Seite 4 von 6   « Erste     234 56      

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