⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msgdatabasetemptablesqlmemtable.pas

📁 Delphi MsgCommunicator 2-10 component.I ve used, really good job. can be Server-Client message appl
💻 PAS
字号:
unit MsgDatabaseTempTableSQLMemTable;

interface


{$I MsgVer.inc}
{DEFINE DEBUG_DB_ACR}

uses

 Classes,SysUtils,

Db,
MsgDatabase,
SQLMemMain,
SQLMemLocalEngine,

{$IFDEF DEBUG_LOG}
MsgDebug,
{$ENDIF}

MsgCompression,
MsgExcept,
MsgComBase,
MsgConst,
MsgTypes
;


type

////////////////////////////////////////////////////////////////////////////////
//
// TMsgTempTableSQLMemTable
//
////////////////////////////////////////////////////////////////////////////////


 TMsgTempTableSQLMemTable = class (TMsgTempTable)
  private
   FCompressionAlgorithm: TCompressionAlgorithm;
   FCompressionMode:      Byte;
   FBlockSize:            Integer;
  public
   constructor Create(AOwner: TComponent); override;
   procedure SaveDatasetToStream(Dataset: TDataset; Stream: TStream); override;
   procedure LoadDatasetFromStream(var Dataset: TDataset; Stream: TStream); override;
  published
   property CompressionAlgorithm: TCompressionAlgorithm read FCompressionAlgorithm write FCompressionAlgorithm;
   property CompressionMode: Byte read FCompressionMode write FCompressionMode;
   property BlockSize: Integer read FBlockSize write FBlockSize;
 end; // TMsgTempTable



implementation


////////////////////////////////////////////////////////////////////////////////
//
// TMsgTempTableSQLMemTable
//
////////////////////////////////////////////////////////////////////////////////


//------------------------------------------------------------------------------
// Create
//------------------------------------------------------------------------------
constructor TMsgTempTableSQLMemTable.Create(AOwner: TComponent);
begin
  inherited;
  FCompressionAlgorithm := caNone;
  FCompressionMode := 0;
  FBlockSize := DefaultMemoryBlockSize;
end; // Create;


//------------------------------------------------------------------------------
// SaveDatasetToStream
//------------------------------------------------------------------------------
procedure TMsgTempTableSQLMemTable.SaveDatasetToStream(Dataset: TDataset; Stream: TStream);
var table: TSQLMemTable;
    s:     String;
begin
  table := TSQLMemTable.Create(nil);
  try
    s := '';
    table.ImportTable(Dataset,s);
    if (s <> '') then
     raise EMsgException.Create(11583,ErrorLErrorImportingDataset,[s]);
    try
      table.SaveTableToStream(Stream,FCompressionAlgorithm,FCompressionMode,FBlockSize);
    finally
      table.DeleteTable(True);
    end;
  finally
    table.Free;
  end;
end; // SaveDatasetToStream


//------------------------------------------------------------------------------
// LoadDatasetFromStream
//------------------------------------------------------------------------------
procedure TMsgTempTableSQLMemTable.LoadDatasetFromStream(var Dataset: TDataset; Stream: TStream);
var table: TSQLMemTable;
begin
  Dataset := nil;
  table := TSQLMemTable.Create(nil);
  Dataset := table;
  table.LoadTableFromStream(Stream);
  table.Open;
end; // LoadDatasetFromStream


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -