AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi bilder als blob in abs db speichern
Thema durchsuchen
Ansicht
Themen-Optionen

bilder als blob in abs db speichern

Ein Thema von agm65 · begonnen am 19. Okt 2006 · letzter Beitrag vom 19. Okt 2006
Antwort Antwort
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#1

bilder als blob in abs db speichern

  Alt 19. Okt 2006, 09:31
Datenbank: abs • Zugriff über: lokal
guten morgen freunde, ich hab mal ne frage zum speichern von bildern in blob felder.
ich möchte die bilder im dbimage anzeigen lassen in kombination mit meinem dbctrl grid.
derzeit lade ich die bilder aus lokalen dirs in normale image boxen.

Delphi-Quellcode:
procedure TfrmShowVehicles.DBCtrlGridPaintPanel(DBCtrlGrid: TDBCtrlGrid;
  Index: Integer);

with DataSource.DataSet do

image1.Picture.LoadFromFile(frmmain.QueryLoadDatashow_image.text);

end;
da die bilder in die box gezeichnet werden verursachen diese große laggs wenn man zB mit einer anderen form darüber fährt, oder beim scrollen.
deswegen wollte ich die dbimagebox nehmen, denn diese lässt sich direkt mit der db verknüpfen.
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#2

Re: bilder als blob in abs db speichern

  Alt 19. Okt 2006, 10:56
Delphi-Quellcode:
var
stream1: TMemoryStream;
stream:tstream;
begin

Stream1:=TMemoryStream.Create;
  Stream1.LoadFromFile('h:\test.jpg');
  try
    Stream:=queryloaddata.CreateBlobStream(queryloaddata.FieldByName('show_image'),bmwrite);
    try
      Stream1.seek(0,0);
      Stream.CopyFrom(Stream1,Stream1.Size);
    finally
      Stream.Free;
    End;
  finally
   Stream1.Free;
  End;
ich dachte man könnte das so speichern aber ich bekomme nur fehler ...hat jemand eine idee ? auch versucht habe ich:

Delphi-Quellcode:
image:Timage;
begin

 image.Picture.LoadFromFile('h:\test.jpg');

  with Tabel do
  begin
    Edit;
    FieldByName('show_image').Assign(Image.Picture );
    Post;
  end;
zugriffsverletzung ?
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: bilder als blob in abs db speichern

  Alt 19. Okt 2006, 11:29
Hi,

bei mir funktioniert es so:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  InStream: TMemoryStream;
  BlobStream: TStream;
begin
  InStream := TMemoryStream.Create;
  InStream.LoadFromFile('d:\test.jpg');
  try
    dm.qryBild.Edit;
    BlobStream := dm.qryBild.CreateBlobStream(dm.qryBild.FieldByName('bild'),bmwrite);
    try
      BlobStream.CopyFrom(InStream, 0);
      dm.qryBild.Post;
    finally
      BlobStream.Free;
    end;
  finally
    InStream.Free;
  end;

end;
Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#4

Re: bilder als blob in abs db speichern

  Alt 19. Okt 2006, 12:05
erstmal danke für die antwort, also ich habe jetzt aus der hilfe folgendes:

Delphi-Quellcode:
procedure TForm1.btLoadClick(Sender: TObject);
var
  FileStream: TFileStream;
  BlobStream: TABSBlobStream;
begin
  ABSTable1.Edit;
  try
    FileStream := TFileStream.Create('Comments.txt',fmOpenRead or fmShareDenyNone);
    BlobStream := TABSBlobStream(ABSTable1.CreateBlobStream(ABSTable1.FieldByName('Comments'),bmWrite));
    BlobStream.CopyFrom(FileStream,FileStream.Size);
    FileStream.Free;
    BlobStream.Free;
    ABSTable1.Post;
  except
    ABSTable1.Cancel;
    raise;
  end;
end;
dann habe ich die txt einfach auf den bild namen geändert und fieldbyname mein blob feld angegeben.
ich bekomme den fehler:

'ABSTable1: Operation bei geschlossener Datenmenge nicht ausführbar'.
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: bilder als blob in abs db speichern

  Alt 19. Okt 2006, 12:19
Hi,

also, wenn ich diesen Fehler bekomme, dann ist die Datenmenge auch nicht offen.
Der Fehler müsste schon bei:

ABSTable1.Edit;

kommen.
Die Datenmenge muss schon offen sein und ein Datensatz muss auch aktiv sein.

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#6

Re: bilder als blob in abs db speichern

  Alt 19. Okt 2006, 12:31
was meinst du damit ? also mein datenbank ist connected. ich lade ja auch vorher schon daten aus.
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: bilder als blob in abs db speichern

  Alt 19. Okt 2006, 12:36
Zitat von agm65:
was meinst du damit ? also mein datenbank ist connected. ich lade ja auch vorher schon daten aus.
Ich kenne abs nicht. Aber ich denke, dass irgendwo ein ABSTable1.Open fehlt.

Wenn du den Debugger bemühst, an welcher Stelle kommt denn der Fehler?

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#8

Re: bilder als blob in abs db speichern

  Alt 19. Okt 2006, 12:42
also wenn ich den tabel auf open mache, bekomme ich nen fehler: missing table name property
ich glaube du hast recht beim edit hängt es schon
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#9

Re: bilder als blob in abs db speichern

  Alt 19. Okt 2006, 12:44
hey frank du bist echt ein schatz ...so jetzt fängt er an zu meckern, dass verschiedene felder nen wert haben müssen

das problem ist nur ich fülle die anderen felder nicht mit dem tabel sondern mit dem query....vll kann ich das umbauen
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#10

Re: bilder als blob in abs db speichern

  Alt 19. Okt 2006, 12:52
oder hast du eine idee wie ich das jetzt kombinieren kann ?
ich trage die anderen werte wie folgt ein:

Delphi-Quellcode:

Query.sql.text := 'Insert into vehicles ('

 + 'brand,'
 + 'model,'

 + ') values (

 + '''' + txtMarke.Text + ''','
 + '''' + txtModell.Text + ''')';

Query.ExecSQL;
kann ich da jetzt nicht meinem blob feld den stream zuweisen ?
euer Peter Porka
  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 12:24 Uhr.
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