![]() |
Datenbank: Intebase/Firebird • Version: 6.x / 2.0 • Zugriff über: IB components
Blob in DB Speichern
Hallo Leute,
bin am verzweifeln habe schon die Suche versucht aber nichts brauchbares gefunden. Ich bräuchte eure hilfe Bitte. Wie kann ich Daten, einen String oder Text der ungewiss lang ist in ein Blob Feld speichern. Egal was ich mache ich bekomme es nicht hin habe es schon
Delphi-Quellcode:
veruscht oder
IBQuery1ERGEBNIS_T1.LoadFromFile('test.txt');
Delphi-Quellcode:
ich bekomme dann immer einen Fehlermeldung "nicht im Bearbeitungs-modus" was genau heist das? Kann mir einer helfen wie ich die daten da rein bekomme? Oder weiss einer wie ich es mit ner SQL Syntax hinbekomme "UPDATE ..."
IBquery1.ParamByName('ERGEBNIS_T1').AsBlob := 'TEST TEST TEST';
Danke schon mal und gruss Rudolf |
Re: Blob in DB Speichern
Wie wäre es mit DbMemo.LoadMemo ?
|
Re: Blob in DB Speichern
Hallo
Schematisch in etwa so "DataSet" symbolisiert deine Tabelle ... 1.) Daten in Stream zwischenlagern 2.) Zum schreiben öffnen mit "Edit" 3.) Stream in Blobfield schreiben 4.) Schreiben abschliessen mit "Post"
Delphi-Quellcode:
function MyObject.FieldWriteAsBlob(const FieldName:String;Const aStream:TStream):Boolean;
var j1:TField; begin Result := False; j1 := Nil; Try if Assigned(DataSet) then begin j1 := DataSet.FieldByName(FieldName); If assigned(j1) then begin if j1.IsBlob then begin DataSet.Edit; if Assigned(aStream) then TBlobField(j1).LoadFromStream(aStream) else TBlobField(j1).Clear; DataSet.Post; Result := True; end; end; end; except on e:exception do begin Result := False; DataSet.Cancel; //.... Exception melden ? end; end; end; procedure MyObject.btnPictureWriteClick(Sender: TObject); var ms1:TMemoryStream; s2:STring; i9:integer; begin // local init ms1 := Nil; s2 := ''; i9 := 0; { Action } try try if Assigned(DataSet) then begin if Not(DataSet.ReadOnly) then begin DataSet.Activate; ms1 := TMemoryStream.Create; if OpenPictureDialog1.Execute then begin ms1.LoadFromFile(OpenPictureDialog1.FileName); ms1.Seek(0, soFromBeginning); MyObject.FieldWriteAsBlob('BlobFeldName',ms1); ms1.Clear; end; end; end; except on E:Exception do begin s2 := e.Message; // .... end; end; finally FreeAndNil(ms1); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 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