Создание и чтение типа блобстрима в Blobfield с использованием FDTable / Sqlite - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь сохранить тип записи в 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...