![]() |
record lesen/speichern in D8
Wie kann ich einen record (myRecord1) in Delphi8 lesen+speichern.
In Delphi6 ging das lesen so:
Delphi-Quellcode:
In Delphi6 ging das speichern so:
var
FS: TFileStream; begin //read try FS := TFileStream.Create('c:\file.cfg', fmOpenRead); FS.ReadBuffer(myRecord1, SizeOF(TmyRecord1)); except ....
Delphi-Quellcode:
Delphi8 bringt folgende Fehler:
var
FS: TFileStream; begin //read try FS := TFileStream.Create('c:\file.cfg', fmCreate); FS.WriteBuffer(myRecord1, SizeOF(TmyRecord1)); except .... [Fehler] utbGlobal.pas(89): Es gibt keine überladene Version von 'ReadBuffer', die man mit diesen Argumenten aufrufen kann [edit=r_kerber]Delphi-Tags eingefügt. Mfg, r_kerber[/edit] |
Re: record lesen/speichern in D8
Pobiers mal so:
Delphi-Quellcode:
Nur wie man die Daten dann in ein BLOB-Feld der Datenbank bekommt....
var fs : TFileStream;
MyData: Array of Byte; begin fs := TFileStream.Create ('D:\usr\Bilder\0006a.jpg',fmOpenRead); SetLength(MyData, fs.Size ); fs.Read(MyData, 0, System.Convert.ToInt32(fs.Size)); fs.Destroy; ... [edit=r_kerber]Delphi-Tags eingefügt. Mfg, r_kerber[/edit] |
Re: record lesen/speichern in D8
... und schickt man's in die Datenbank!!!
Delphi-Quellcode:
[edit=r_kerber]Code- durch Delphi-Tags ersetzt. Mfg, r_kerber[/edit]
procedure TWebForm1.Button2_Click(sender: System.Object; e: System.EventArgs);
var fs : TFileStream; MyData: Array of Byte; n : Integer; begin fs := TFileStream.Create ('D:\usr\Bilder\0006a.jpg',fmOpenRead); SetLength(MyData, fs.Size ); n :=fs.Size; fs.Read(MyData, 0, System.Convert.ToInt32(fs.Size)); fs.Destroy; TextBox1.Text:= System.Convert.ToString(n); BdpCommand1.CommandText := 'insert into T_UPLOAD(FNAME, DATEN) values (:FNAME, :DATEN)'; BdpCommand1.Parameters.Add('FNAME',bdpType.String).Value :='1'; BdpCommand1.Parameters.Add('DATE',bdpType.Blob,bdpType.stBinary ,n).Value:=MyData; BdpConnection1.Open; BdpCommand1.ExecuteNonQuery; BdpConnection1.Close; end; |
Record lesen/speichern in Net
Da das ReadBuffer in .Net nicht mehr mit Records funktioniert, muss man mit Serialisierung arbeiten. Hier ein kleines Beispiel:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, System.ComponentModel, Borland.Vcl.StdCtrls, System.Runtime.Serialization.Formatters.Binary; type [Serializable()] TMyRec = packed record FValue1 : Double; FValue2 : String; end; [Serializable()] TData = class private FValue1, FValue2: String; FRec: TMyRec; [NonSerialized()] FValue3: String; end; TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.nfm} procedure TForm1.Button1Click(Sender: TObject); var aData: TData; aRec: TMyRec; aFileStream: TFileStream; aFormatter: BinaryFormatter; begin aData := TData.Create; aData.FValue1 := 'Wert 1'; aData.FValue2 := 'Wert 2'; aData.FValue3 := 'Wert 3'; aData.FRec.FValue1 := 0.123; aData.FRec.FValue2 := 'abc'; aRec.FValue1 := 0.123; aRec.FValue2 := 'abc'; aFileStream := TFileStream.Create('test.dat', fmCreate); aFormatter := BinaryFormatter.Create; aFormatter.Serialize(aFileStream, aData); aFileStream := TFileStream.Create('test2.dat', fmCreate); aFormatter := BinaryFormatter.Create; aFormatter.Serialize(aFileStream, aRec); end; procedure TForm1.Button2Click(Sender: TObject); var aData: TData; aRec: TMyRec; aFileStream: TFileStream; aFormatter: BinaryFormatter; begin aFileStream := TFileStream.Create('test.dat', fmOpenRead); aFormatter := BinaryFormatter.Create; aData := TData(aFormatter.Deserialize(aFileStream)); ShowMessage(aData.FValue1); ShowMessage(aData.FValue2); ShowMessage(aData.FValue3); aFileStream := TFileStream.Create('test2.dat', fmOpenRead); aFormatter := BinaryFormatter.Create; aRec := TMyRec(aFormatter.Deserialize(aFileStream)); ShowMessage(aRec.FValue1.ToString); ShowMessage(aRec.FValue2); end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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