我试图将Record类型存储到Blobfield中。我正在使用SQLite和FDTable。我无法使它正常工作。我查看了有关Createblobstream的所有其他帖子,并尝试了许多方法,但均未成功。 我的记录要大得多,所以我得到了相同的结果,因此简化了这一点。
读回数据后我无法访问数据,始终无法访问。我以前在Delphi 2010中使用过此代码,但是我正在使用访问数据库。
任何方向将不胜感激。
TTestRec = Record
Name : String;
Number : Integer;
end;
procedure TForm.WriteBlobClick(Sender : TObject);
var
R : TTestRec;
BS : TStream;
BFld : TBlobField;
begin
R.Name:=Edit4.Text;
R.Number:=Strtoint(Edit5.Text);
BFld:=TBlobfield(Table1Settings);
if Table1.State<>dsEdit then
Table1.Edit;
BS:= Table1.CreateBlobStream(BFld,bmWrite);
Try
BS.Writebuffer(R,Sizeof(TTestRec));
Finally
BS.Free;
End;
dmdata.Table1.Post;
end;
procedure TForm1.ReadBlobClick(Sender: TObject);
var
R : TTestRec;
BS : TStream;
BFld : TBlobField;
begin
BFld:=TBlobfield(Table1Settings);
BS:= Table1.CreateBlobStream(BFld,bmRead);
Try
BS.ReadBuffer(R,sizeof(TTestRec));
Finally
BS.Free;
End;
Edit4.Text:=R.Name;
Edit5.Text:=inttostr(R.Number);
end;
谢谢 -泰森