• Quick backup and Cloud services
  • Compression and encryption of backup files
  • A set of regular database maintenance tasks and much more
  • 30 days free trial
  • 25%OFF coupon - "Torrynet" (valid till 1 March 2020)

AidAim SQLMemTable v.8.00

By AidAim Software LLC.

Freeware 26 Feb 2014


SQLMemTable is a fast and easy-to-use in-memory table and query VCL for Delphi and C++ Builder. SQLMemTable includes three visual components:
  • TSQLMemTable, which is a fast and easy in-memory TTable replacement;
  • TSQLMemQuery that provides a subset of SQL'92 operators;
  • TSQLMemBatchMove which is very close to TBatchMove and supports almost all of its functionality.
SQLMemTable does not require BDE and provides all the TTable functions such as master / detail relationship, filtering, searching, sorting, blob fields, key and range methods, as well as some advanced features like blob fields compression and Unicode support.SQLMemTable provides the following services:
  • SQL (DML and DDL) commands support;
  • support (SQL'99 compliance);
  • Stored Functions and Procedure support
  • BatchMove component;
  • master / detail relationship;
  • Database Designer - design-time editor for TSQLMemDatabase
  • creating, renaming, emptying, deleting and restructuring tables;
  • creating, editing, deleting, browsing and searching for records;
  • creating and deleting multiple indexes;
  • calculated and lookup fields;
  • filtering support;
  • BLOB fields compression;
  • importing from and exporting to any dataset in fast and easy way;
  • internationalization / localization and Unicode support.
SQLMemTable is a fully functional in-memory database system; it includes table, query and batch move components as well as useful utility (with source code), demos and comprehensive help. SQLMemTable does not require BDE or any external drivers and has small footprint.


  • Status: Fully functional
  • Source: On purchase/registration
  • Source price: $295
  • Size: 4 458kB

Platforms: C2k10, C2k6, C2k7, C2k9, CB5, CB6, CB64, CBXE, CBXE2, CBXE3, CBXE4, CBXE5, D2005, D2006, D2007, D2009, D2010, D5, D6, D7, DXE, DXE2, DXE3, DXE4, DXE5, DXE64

KbmMemTable v.5.52

By Components4Developers.

Freeware + source 25 Feb 2007


If you have ever wanted to store data temporarily in your Delphi, C++ Builder or Kylix application, and you at the same time wanted full access to the data as if they were stored in a database table, you have the right solution here. kbmMemTable is a full TDataset compatible in memory table loaded with functionality.
  • Std.version is Free/Infoware.
  • Pro version is free for holders of kbmMW commercial developer licenses.
  • No need for the BDE. Make a full fledged application with data storage using only kbmMemTable.
  • Fastest memory table around.
  • Full expression filtering supported for Delphi 5/6/7/8 and BCB 5/6.
  • Advanced index support incl. filtered indexes and allot more.
  • Full support for search and locate both using indexes and not.
  • International sort orders supported for indexes.
  • In memory compression of data.
  • Full range of fields supported incl. blobs.
  • Full support for all data aware controls.
  • Easy interaction with other TDataset descendants.
  • Supports multiple cursors to the same physical in memory data.
  • Full support for transactions (StartTransaction, Commit, Rollback).
  • Supports Win32, Linux and safe .Net code.
  • and much more...


  • Status: Fully functional
  • Source: Included
  • Size: 529kB

Platforms: C2k6, CB3, CB4, CB5, CB6, D2005, D2006, D3, D4, D5, D6, D7

Memory Dataset v.3.11

By Gregor Markowski.

Freeware 18 Dec 2014


The TMemoryDataset is a perfect replacement for Delphi TClientDataset.

I have created this component with minimum programming code and tried to achieve the maximum functionality Wherever the original Borland code was not optimal I have overridden it, but generally Iíve tried to take the maximum advantage of Borland code.You will be amazed at the potentiality and efficiency of TMemoryDataset component - TMemoryDataset not only allocates circa 1/3 of the memory that TClientDataset allocates but also is much faster in opening and creating indexes (especially multiple field indexes)

The package contains also TTreeDataset component that is a descendant of TMemorydataset.

Here are some features of the TMemoryDataset component:

  • no Midas and no external DLLs are used, TMemoryDataset is written in pure pascal code
  • borland TDatasetProvider functionality is integrated into TMemoryDataset, and property ProviderOptions implements apropriate TDatasetProvider options
  • cascade updates are performed on nonTMemoryDataset datasets as well, if detail dataset has properties MasterFields and IndexFieldNames
  • unlike TClientDataset, TMemoryDataset method ApplyUpdates doesn't perform Commit, so You can apply updates for multiple datasets in one transaction, by explicit call Commit method of Database assosiated with DefaultDestDataset after last call of ApplyUpdates
  • You can use TMemoryDataset with nonSQL based datasets as well
  • You can create fields in field editor without any link to other dataset or just use a dataset as FieldDefsSource, or set DefaultSrcDataset or DefaultDestDataset; if DefaultSrcDataset and DefaultDestDataset are different use the DefFieldValueAssignment (avByFieldIndex, avByFieldName,avByFieldNo) to link fields between the datasets
  • create indexes by setting IndexFieldNames; You can use 'desc' and 'cs' keywords to create descanding or casesensitive index for example: 'field1name desc cs; field2name;field3name cs;field4name desc';
  • by setting ranges, You don't need to think if field is indexed descending or ascending, TMemoryDataset will allways take values greater (or equal depending on KeyExclusive value) then lower value of range values and lower (or equal) then greater value of range values
  • ingenious algorithms for FASTEST creating of multiple field indexes and exact and nearest record locating
    • sorting on fkLookup fields (if LookupDataset allows to set index on LookupResultField it means there is IndexFieldDefs/IndexName or IndexFieldNames published property) without allocating any additional memory, sorting algorithm uses index in LookupDataset
    • a Calculated field can also be sorted; if it has an equivalent sort order in a fkData field, then put this fkData field name into Origin property of the calculated field
  • full support for FASTEST filtering (especially when using 'IN' expressions: 'aField in (value1,value2,..., valueN)'
  • MasterSourceFields are defined regardless of IndexFieldNames, it means You can sort detail Dataset as You want without loosing link to MasterSource
    • in opposite to TClientDataset,TDatasetField is natively used in connection with MasterSource, showing in simply way details in TDBGrid descendants
    • in dsInsert state, TMemoryDataset assigns for You MasterFields values to appropriate LinkedFields automatically
    • You can use Borland Field Link Designer at design-time to set relationship between master-detail fields
  • records are stored with minimum allocation of memory (string fields occupy actual length); there are 2 strategies of storing data (property StorageModel):
    • smVariableFieldsOffsets - minimum amount of memory is allocated for fields data (each null field value takes just one bit of memory)
    • smFixedFieldsOffsets - little more memory used for fields storage but faster creation of fields indexes and faster locating on searched records
  • all field types are fully supported
  • property StoreEmptyStrAsNull; if set to True then:
    • strings with 0 length or containing only whitespaces are stored as null
    • memory is saved in smVariableFieldsOffsets StorageModel
  • property StoreZeroAsNull for TNumericField descendants; if set to True then:
    • zero values are stored as null
    • negative values are placed before nulls in sort order
    • more clarity is given when browsing data in TCustomDBGrid descendants
    • memory is saved in smVariableFieldsOffsets StorageModel
  • SparseArrayElementCount published property lets You set the way of storing array fields:
    • -1 means all array elements are created in TArrayField Fields property
    • 0 means all array elements are stored but only one child field named 'Array_Elements' is created, but still You have access to each array element
    • >0 defines the maximum chilld field count that can be created and accessed
    • if array field is created in field editor it is highly recommended to use TmArrayField for which You can set value of property Size at design time
  • extreme fast locating of required records; nearest locate methods let You search with options (nloLowestDifference, nloKeyExclusive)
  • LoadDataFromTextFile method allows import not only text fields but multiline Memos and Blobs (in form of hexadecimal strings) as well
  • You can use TMemoryDataset in You Delphi IDE without any restrictions
  • try DEMO-exe to see an example of using TMemoryDataset (including TADTField)


  • Status: Trial (work while IDE is running)
  • Source: None
  • Exe demo: included
  • Size: 1 704kB

Platforms: D2006, D2007, D6, D7

THKMemTab v.1.1b

By Harri Kasulke.

Freeware + source 12 Mar 1999


THKMemTab is a memory-based Dataset with Data-Aware components support developed for storing Temporary Data in Memory using MemoryStreams. Doesn't need the BDE. Supports primary Dataset- and Field access Methods but no Indexing, Filtering or Sorting. Supported Field types: ftString, ftBoolean, ftFloat, ftSmallInt, ftInteger, ftDate, ftTime.


  • Status: Fully functional
  • Source: Included
  • Size: 32kB

Platforms: D3

TMemDataset v.2.16

By Alain Brunet.

Shareware 24 Jun 2006


The TMemDataset is a unique fully indexable memory table that works like a TTable. Records and indexes are stored in RAM. TMemDataset does not require BDE. Can be used by any application that replace the BDE with some other 3rd party's database engines. Support Blob fields. Easy to use 'OrderBy' property for sorting. Support Ranges and filters, Lookup and Calculated fields etc.. Cheap alternative for client/server (OLE) data transfer.


  • Status: Trial (work while IDE is running)
  • Source: On purchase/registration
  • price: $45
  • Size: 602kB

Platforms: D4, D5, D6, D7

TreeDataset v.1.17

By Gregor Markowski.

Freeware 18 Dec 2014


TTreeDataset as a descendants of TMemoryDataset lets You handle tree data structures in very easy way. For example a descendant of TCustomDBGrid needs just a few methods to be overriden to work with TTreeDataset.

    main features
  • if You attach a data source then poLoadDataOnOpen in ProviderOptions lets You decide if all nodes are loaded on open; if the option is excluded then tree is builded dynamically according to the progress of node expanding
  • when dataset is filtered then You can use FilteredRecordHandling to decide if not filtered out descendants of filtered out record can be attached to the nearest not filtered out ancestor or excluded from the tree
  • in multiparent tree data structure all data is preserved on changing parent and no additional memory is allocated
  • following published properties let You adjust any visual-data aware component for TTreeDataset access
    • Depth - the level of the node; root branch starts with 0
    • HasChildren and Expanded - for correct visualization of expand buttons; by setting Expanded to True or False You can expand or collapse node
    • IsLastChild (if needed IsFirstChild as well) and IsAncestorLastChild - for drawing of tree lines; IsAncestorLastChild returns a string of 'Depth' count character indicators: 'F' for False and 'T' for True where first character indicates if ancestor on root branch is last child, and so on...

Try DEMO-exe to see an example of a random generated human population.


  • Status: Trial (work while IDE is running)
  • Source: None
  • Exe demo: included
  • Size: 1 939kB

Platforms: D2006, D2007, D6, D7

VirtualTable v.9.7

By Devart.

Freeware 12 Jun 2016


TVirtualTable component is a TDataSet descendant, that represents an in-memory data storage to develop in Delphi, C++Builder, Lazarus (and Free Pascal) on Windows, Mac OS X, iOS, Android, Linux, and FreeBSD for both 32-bit and 64-bit platforms. To add fields to virtual table call AddField method. Immediately after creating virtual table it will be empty. You then define new fields or load existing table files so that virtual table object becomes initialized and ready to be opened.

When you close virtual table it will discard its record set. To keep data you entered at design-time for later use you may wish to include voStored option in Options property. At run-time you need to call SaveToFile method explicitly to store modifications to the file that later may be retrieved back into the virtual table by calling LoadFromFile method.


  • Status: Fully functional
  • Source: On purchase/registration
  • Source price: $99.95
  • Size: 880kB

Platforms: C2k10, C2k6, C2k7, C2k9, CB6, CBXE, CBXE2, CBXE3, CBXE4, CBXE5, CBXE6, CBXE7, CBXE8, CX, CX.1, D2006, D2007, D2009, D2010, D6, D7, DX, DX.1, DXE, DXE2, DXE3, DXE4, DXE5, DXE6, DXE7, DXE8

More interesting links and pages

Play blackjack at the best live dealer casino online in the UK

Online Casino


Our favorite online real-money casinos in Austria on Casinohex.at is a great opportunity to enjoy all the benefits of playing for real money.

Visit GambleGenie.fi to get the best casino value in Finland

If you are going to play online casino in Canada you better visit the Genie first


Casino Online Romania

Time Calculator

Wheel of Fortune Answers

Check out Valforex reviews

Efortuna Casino

Scrummaster and Agile trainings

Word Unscrambler

China Wholesale Suppliers Directory

Free Angram Solver

Syllable Word Counter

Printable Sudoku Puzzles

Download Instagram Stories

Word Search Puzzles



Percentage Calculator


Indian casinos are here to stay and Royal Panda is your top choice

Best online roulette Nederland CasinoHEX