Overview

Tabular Data

The TabularData class (from System.Data.Tabular) provides high-performance, memory-efficient handling of large column-oriented datasets.

TabularData Class

Method Description
CreateFromDataSet(ds [, opts]) Initializes from a database DataSet.
EvaluateNewColumn(name, rpn_expr) Adds a calculated column using an RPN expression array.
EvaluateAggregate(op, rpn_expr) Calculates a scalar value (e.g. sum).
LockAndShare(name) Makes the dataset globally available in shared memory.
ConnectToShared(name) Connects to an existing shared dataset.
ExportToSeparated(sep) Exports data to a delimited string (CSV).

Example: Calculations

uses System.Data.Tabular;

var data := new TabularData;
data.AddColumn('Price', [10.0, 20.0, 30.0]);
data.AddColumn('Tax', [0.05, 0.10, 0.15]);

// Calculated column: Price * (1 + Tax)
data.EvaluateNewColumn('Total', [ '"Price"', '1', '"Tax"', '+', '*' ]);

// Aggregate
var totalSales := data.EvaluateAggregate('sum', [ '"Total"' ]);
PrintLn('Total Sales: ' + FloatToStr(totalSales));

Performance Features

  • JIT Compilation: Expressions in EvaluateNewColumn and EvaluateAggregate are JIT-compiled for native execution speed.
  • Memory Efficiency: Data is stored in a column-oriented format, reducing overhead and improving cache locality.
  • Zero-Copy Sharing: ConnectToShared provides access to global datasets without duplicating memory.
On this page