FireDAC.Stan.Option.TFDFormatOptions.InlineDataSize
Delphi
property InlineDataSize: Integer read GetInlineDataSize write
C++
__property int InlineDataSize = {read=GetInlineDataSize, write=SetInlineDataSize, stored=IsIDSS, default=1000};
Properties
Type | Visibility | Source | Unit | Parent |
---|---|---|---|---|
property | published | FireDAC.Stan.Option.pas FireDAC.Stan.Option.hpp |
FireDAC.Stan.Option | TFDFormatOptions |
Description
Controls how character or byte string values are stored in the record buffer.
Use InlineDataSize to control how character or byte string values are stored in the record buffer. The default value is 1000 bytes.
If the dtAnsiString
, dtWideString
, dtByteString
field values are less than InlineDataSize, then FireDAC stores field values inside of the record buffer (inline storage). If the field values are equal to or greater than InlineDataSize, then the record buffer will keep a pointer to the allocated memory space for the field value (exact storage).
An inline storage offers good performance at data fetching, but may use a much larger memory space than an exact storage. A good performance, because there is no need to allocate a memory space for each string value and it allows you to streamline a rowset fetching. It uses a larger memory space, because of the following: For example, a column in a table is declared as VARCHAR(2000), but a record field has a 50-character-long value. An inline storage uses a 2000-character-long space for a value storage, while a space of only 50 characters is required. By contrast, the exact storage allocates a 50-character-long space and stores the pointer to this space inside of the record buffer.
Also, long string values (BLOBs) are always stored using exact storage.