Recent

Author Topic: TBufDataset SaveToStream and LoadFromStream, how?  (Read 1200 times)

tatamata

  • Hero Member
  • *****
  • Posts: 787
    • ZMSQL - SQL enhanced in-memory database
TBufDataset SaveToStream and LoadFromStream, how?
« on: February 10, 2020, 09:17:24 pm »
Hello,
Could somebody please provide full example how to save TBufDataset to a file stream and how to load back from a saved file stream?

lucamar

  • Hero Member
  • *****
  • Posts: 4219
Re: TBufDataset SaveToStream and LoadFromStream, how?
« Reply #1 on: February 10, 2020, 10:08:21 pm »
Canonical example: The standard implementation of SaveToFile and LoadFromFile (in $FPCSource/packages/fcl-db/src/base/bufdataset.pas):

Code: Pascal  [Select][+][-]
  1. procedure TCustomBufDataset.LoadFromFile(AFileName: string; Format: TDataPacketFormat);
  2. var AFileStream : TFileStream;
  3. begin
  4.   if AFileName='' then AFileName := FFileName;
  5.   AFileStream := TFileStream.Create(AFileName,fmOpenRead);
  6.   try
  7.     LoadFromStream(AFileStream, Format);
  8.   finally
  9.     AFileStream.Free;
  10.   end;
  11. end;
  12.  
  13. procedure TCustomBufDataset.SaveToFile(AFileName: string;
  14.   Format: TDataPacketFormat);
  15. var AFileStream : TFileStream;
  16. begin
  17.   if AFileName='' then AFileName := FFileName;
  18.   AFileStream := TFileStream.Create(AFileName,fmCreate);
  19.   try
  20.     SaveToStream(AFileStream, Format);
  21.   finally
  22.     AFileStream.Free;
  23.   end;
  24. end;
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus/FPC 2.0.8/3.0.4 & 2.0.12/3.2.0 - 32/64 bits on:
(K|L|X)Ubuntu 12..18, Windows XP, 7, 10 and various DOSes.

 

TinyPortal © 2005-2018