AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Image in Access Datenbank speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Image in Access Datenbank speichern

Ein Thema von uwe12 · begonnen am 28. Apr 2009 · letzter Beitrag vom 5. Mai 2009
Antwort Antwort
uwe12

Registriert seit: 21. Apr 2009
58 Beiträge
 
#1

Re: Image in Access Datenbank speichern

  Alt 30. Apr 2009, 14:48
es kommt nur append. ich habe hier mal meinen gesamten quelltext.
Delphi-Quellcode:
function JpegStartsInBlob(PicField:TBlobField):integer;
var
 bS : TADOBlobStream;
 buffer : Word;
 hx : string;
begin
 Result := -1;
 bS := TADOBlobStream.Create(PicField, bmRead);
 try
  while (Result = -1) and (bS.Position + 1 < bS.Size) do begin
   bS.ReadBuffer(buffer, 1);
   hx:=IntToHex(buffer,2);
   if hx = 'FFthen begin
     bS.ReadBuffer(buffer, 1);
     hx:=IntToHex(buffer,2);
     if hx = 'D8then Result := bS.Position - 2
     else if hx = 'FFthen bS.Position := bS.Position-1;
   end;//if
  end;//while
 finally
  bS.Free
 end; //try
end;


procedure TForm1.ADOTable1AfterScroll(DataSet: TDataSet);
var
  bS : TADOBlobStream;
  Pic : TJpegImage;
 begin
 if AdoTable1.FieldByName('Bild').AsString <> 'then
 begin
  bS := TADOBlobStream.Create(AdoTable1Bild, bmRead);
  try
    bS.Seek(JpegStartsInBlob(AdoTable1Bild), soFromBeginning);
    Pic:=TJpegImage.Create;
    try
     Pic.LoadFromStream(bS);
     ADOImage.Picture.Graphic:=Pic;
    finally
     Pic.Free;
    end;
  finally
    bS.Free
  end;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if openpicturedialog1.Execute then
begin
  AdoImage.Picture.LoadFromFile(openpicturedialog1.FileName);
end;
end;
      
procedure TForm1.Button2Click(Sender: TObject);
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);
    finally
      AdoTable1.post;
      fs.Free;
    end;
  finally
    blob.Free;
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Adotable1.Append;
end;

procedure TForm1.FormCreate(Sender: TObject);
var sDBPath, sCons: string;
begin
sDBPath := 'O:\adopic\Datenbank1.mdb';
sCons := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + sDBPath + ';Persist Security Info=False';
ADOTable1.Active:=True;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
ADOTable1.Active:=False;
end;

end.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 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