![]() |
Datenbank: MS SQL • Version: 2005 • Zugriff über: ADO
Bild in Datenbank speichern und wieder auslesen
Salvete die Kollegen,
habe ein Problem mit Bildern, welche ich in einer SQL-Datenbank speicher. Fehlermeldung: Im Projekt bla.. ist eine Exception der Klasse EDatabaseerror mit der Meldung 'Datenmenge weder im Editier, noch im Einfügemodus' aufgetreten. Code:
Delphi-Quellcode:
Die gleiche Meldung kommt, wenn ich das Image wieder einlesen möchte:
procedure bildzufuegen(nummer : string);
var _query : TADOQuery; Blobfield : TField; BS : Tstream; begin _query := Tadoquery.Create(nil); with _query do begin connection := FrmMain.ADOConnMUS; try _query.sql.Text := 'select * from musmanager_user where lfdnr='+nummer; _query.open; if eof then begin showmessage('Keine Daten vorhanden'+#10#13+'Sollte eigentlich hier nicht vorkommen!'); end else begin with frmmain do begin edit; blobfield := fieldbyname('Bild'); try BS := CreateBlobStream(BlobField,bmWrite); Frmmain.userimage.Picture.Bitmap.SaveToStream(BS); post; finally freeandnil(BS); => hier kommt die Fehlermeldung end; end; end; finally freeandnil(_query); end; end; end;
Delphi-Quellcode:
Wer hat eine Idee?
procedure set_pic(usernr : string);
var _stmp : string; _query : Tadoquery; BS : TStream; Blobfield : TField; begin _stmp := 'select * from musmanager_user where lfdnr ='+usernr; _query := Tadoquery.Create(nil); with _query do begin connection := FrmMain.ADOConnMUS; try _query.sql.Text := _stmp; _query.open; if (not eof) then begin try Blobfield := FieldbyName('Bild'); if blobfield <> NIL then begin BS := CreateBlobStream(BlobField,bmReadWrite); => hier kommt die Fehlermeldung FrmMain.userimage.picture.bitmap.loadfromstream(BS); end; finally freeandnil(stream); end; end; _query.close; finally freeandnil(_query); end; end; end; Gruss EL |
Re: Bild in Datenbank speichern und wieder auslesen
Hallo
Auf die schnelle fällt mir folgendes auf 1.) bei deiner Zeile mit "Edit;" bzw. "Post" fehlt der Bezug zum dataset "_Query1.edit;" (Evt.verdecktz durch deinen internen "With" 2.) Query eigentlich für abfrage. Beim schreiben verwendi ich immer TADoTable 3.) ich meide "with do begin" und verwende immer den lngen absolut namen ... |
Re: Bild in Datenbank speichern und wieder auslesen
Hallo,
nur 'ne Vermutung: macht der eventuell schon ein implizites Post?
Delphi-Quellcode:
Mal im Debugger die property State der Query befragen.
BS := CreateBlobStream(BlobField,bmWrite);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 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 by Thomas Breitkreuz