![]() |
Datenbank: MySQL • Version: 4 • Zugriff über: ZEOSLib
Blobs speichern
Hallo,
nochmal zum Blob: Habe folgenden Code:
Delphi-Quellcode:
Mein Fehler liegt bei der Initialisierung des Blob-Streams. Ich bekomme immer die Meldung "inkompatible Typen String und TBlobField"
procedure TForm6.LbSpeedButton1Click(Sender: TObject);
var FileStream:TFileStream; BlobStream:TBlobStream; begin if OpenDialog1.Execute then Edit3.Text:=OpenDialog1.FileName; FileStream:=TFileStream.Create(Edit3.Text,fmOpenRead); BloBStream:=TBlobStream.Create(TEdit(Form1.ZQuery1.FieldByName('anlage')), bmread); //weiter bin ich noch nicht... end; Mein zu speichernder Anhang befindet sich in der Edit1 Komponente. Wie kann ich die Datei jetzt in die DB speichern bzw. das Feld "kompatibel" machen? EDIT: ICH HABE KEINE DATASET-KOMPONENTE! |
Re: Blobs speichern
Zitat:
Bist Du dir sicher das dein Anhang sich in Edit1 befindet? Was soll das denn für ein Anhang sein der in einem TEdit steht? |
Re: Blobs speichern
da steht der Pfad zu der Datei drin. Ich weiß, es muss in einen Filestream geschrieben werden. Ich bekomme es trotzdem net so hin
|
Re: Blobs speichern
Zitat:
Delphi-Quellcode:
BloBStream:=TBlobStream.Create((Form1.ZQuery1.FieldByName('anlage') as TBlobField), bmread);
|
Re: Blobs speichern
Undefinierter Bezeichner TBlobField
inkompatible Typen TBlobField und TField konnte nicht ... |
Re: Blobs speichern
Delphi-Quellcode:
Allerdings stand im ersten Post
BloBStream:=TBlobStream.Create(Form1.ZQuery1.FieldByName('anlage'), bmread);
Zitat:
|
Re: Blobs speichern
Ja, hatte schon mehrere Möglichkeiten ausprobiert. Es funktionieren beide nicht :wall:
|
Re: Blobs speichern
Hai DJ-SPM,
ich selber arbeite (fast)nur mit INSERT, UPDATE Befehlen. In diesem Fall würde ich das also so lösen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var FileStream: TMemoryStream; anlagefile : string; begin if (OpenDialog1.Execute) then begin anlagefile :=OpenDialog1.FileName; try FileStream:=TMemoryStream.Create; // Stream erzeugen FileStream.LoadFromFile(anlagefile); // Anhang laden FileStream.Position := 0; ZQuery1.Close; ZQuery1.SQL.Text := 'INSERT INTO anlagen (anlage) VALUES (:panlage)'; ZQuery1.ParamByName('panlage').LoadFromStream(FileStream,ftBlob); // ab damit ZQuery1.ExecSQL; finally FileStream.Free; end; end; end; |
Re: Blobs speichern
Danke,
werde es mal ausprobieren und mich melden! |
Re: Blobs speichern
Hi Sharky,
muss der Umweg über einen Parameter wirklich sein?
Delphi-Quellcode:
Grüße vom marabu
procedure TForm6.LbSpeedButton1Click(Sender: TObject);
var fs: TFileStream; bf: TBlobField; begin with OpenDialog do if Execute then begin fs := TFileStream.Create(FileName, fmOpenRead); bf := Form1.ZQuery1.FieldByName('anlage') as TBlobField; // ZQuery1.RequestLive ist TRUE und // die Query befindet sich hoffentlich im Edit-Modus bf.LoadFromStream(fs); fs.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 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