Я пытаюсь сохранить тип записи в BLOB-поле.Я использую 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;
Спасибо -Tyson