Question
“How do I save/load archive files to and from a table in my database?”
Solution
To save a file to DB, export the archive to memory stream using the TppStreamDevice.OutputStream property, then copy that to a TBlobStream which can easily be saved to a DB.
If the archives are already saved to file, create a TFileStream and use the same technique.
Loading archives from a database can easily be done using the TppDBArchiveReader object available from the Delphi component pallet.
Download: DBArchiveReader.zip
Sample Delphi code:
procedure TForm1.TransferArchiveToBLOBField(const aName: String);
var
  lArchive: TMemoryStream;
  lArchiveDevice: TppArchiveDevice;
  lsArchive: String;
begin
  lArchive := TMemoryStream.Create;
  lArchiveDevice := TppArchiveDevice.Create(nil);
  try
    lArchiveDevice.OutputStream := lArchive;
    lArchiveDevice.Publisher := ppReport1.Publisher;
    ppReport1.PrintToDevices;
  finally
    lArchiveDevice.Free;
  end;
  tblArchive.Append;
  try
    tblArchive.FieldByName('Name').AsString := aName;
    TBlobField(tblArchive.FieldByName('Archive')).LoadFromStream(lArchive);
  except
    tblArchive.Cancel;
    raise;
  end;
  tblArchive.Post;
  lArchive.Free;
end;
procedure TForm1.btnReadArchiveClick(Sender: TObject);
begin
  FReader := TppDBArchiveReader.Create(Self);
  FReader.DatabaseSettings.DataPipeline := ppDBPipeline1;
  FReader.DatabaseSettings.NameField := 'Name';
  FReader.DatabaseSettings.BLOBField := 'Archive';
  FReader.DatabaseSettings.Name := tblArchive.FieldByName('Name').AsString;
  FReader.Print;
end;