Delphi-PRAXiS
Seite 2 von 8     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Image in Access Datenbank speichern (https://www.delphipraxis.net/133254-image-access-datenbank-speichern.html)

DeddyH 29. Apr 2009 09:15

Re: Image in Access Datenbank speichern
 
BLOB ist BLOB, ob Bitmap, JPEG oder Word-Dokumente, völlig egal. Und was heißt "funktioniert nicht richtig" denn genau? Ich muss allerdings dazu sagen, dass ich eigentlich nie was mit ADO mache.

uwe12 29. Apr 2009 09:18

Re: Image in Access Datenbank speichern
 
Es kommt immer die Fehlermeldung ,,Stream-Lesefehler".

DeddyH 29. Apr 2009 09:22

Re: Image in Access Datenbank speichern
 
Dann versuch es mal hiermit: http://www.swissdelphicenter.ch/torr...de.php?id=1271

uwe12 29. Apr 2009 09:34

Re: Image in Access Datenbank speichern
 
Ich habe das Beispiel mal ausprobiert, aber irgendwie bekomme ich es nicht hin. Bekomme folgende Fehlermeldung: Es gibt keine überladene Version von 'Create', die man mit diesen Argumenten aufrufen kann
Delphi-Quellcode:
var
  blob: TAdoBlobStream;
  fs:TFilestream;
begin
 blob := TADOBlobStream.Create(AdoTable1Bild, bmwrite);
  try
    blob.Seek(0, soFromBeginning);
    fs := TFileStream.Create(AdoTable1Bild, fmOpenRead or
      fmShareDenyWrite);
    try
      blob.CopyFrom(fs, fs.Size)
    finally
      fs.Free
    end;
  finally
    blob.Free
  end;

DeddyH 29. Apr 2009 09:38

Re: Image in Access Datenbank speichern
 
Das liegt daran, dass Du ja keine Datei von der Festplatte lädst, sondern ein Bild aus einem Image haben möchtest. Du musst also den FileStream in einen MemoryStream ändern und das Bild dort hineinladen. Der Rest mit CopyFrom usw. bleibt dann aber gleich.

uwe12 29. Apr 2009 09:49

Re: Image in Access Datenbank speichern
 
Ich habe das jetzt mal geändert aber es kommt immer noch der gleiche Fehler.
Delphi-Quellcode:
var
  blob: TAdoBlobStream;
  fs:TMemorystream;
begin
AdoTable1.edit;
 blob := TADOBlobStream.Create(AdoTable1Bild, bmwrite);
  try
    blob.Seek(0, soFromBeginning);
    fs := TMemorystream.create();
    try
      blob.CopyFrom(fs, fs.Size)
    finally
      fs.Free
    end;
  finally
    blob.Free
  end;
 AdoTable1.post;
end;

DeddyH 29. Apr 2009 10:22

Re: Image in Access Datenbank speichern
 
Kann das sein, dass Du die Streams verwechselt hast? Mal aus dem Kopf (daher keine Garantie):
Delphi-Quellcode:
var
  blob: TAdoBlobStream;
  fs:TMemorystream;
begin
  AdoTable1.edit;
  blob := TADOBlobStream.Create(AdoTable1Bild, bmwrite);
  try  
    fs := TMemorystream.create();
    ADOImage.Picture.Bitmap.SaveToStream(fs);
    fs.Seek(0, soFromBeginning);
    try
      blob.CopyFrom(fs, fs.Size);
      AdoTable1.post;
    finally
      fs.Free;
    end;
  finally
    blob.Free;
  end;
end;

uwe12 29. Apr 2009 10:52

Re: Image in Access Datenbank speichern
 
irgendwie kommt der fehler immernoch. ich habe keine ahnung, an was das liegen könnte.

DeddyH 29. Apr 2009 10:56

Re: Image in Access Datenbank speichern
 
In welcher Zeile kommt der Fehler denn?

uwe12 29. Apr 2009 11:01

Re: Image in Access Datenbank speichern
 
jetzt kommt bei mir die Meldung ,,Stream read error". aber ich glaub das liegt jetzt nciht mehr am speichern, sondern an der procedure für das auslesen des bildes.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:32 Uhr.
Seite 2 von 8     12 34     Letzte »    

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