FireDAC.Phys.SQLiteVDataSet.TFDLocalSQL.MultipleCursors
Delphi
property MultipleCursors: Boolean read FMultipleCursors write FMultipleCursors default True;
C++
__property bool MultipleCursors = {read=FMultipleCursors, write=FMultipleCursors, default=1};
Properties
Type | Visibility | Source | Unit | Parent |
---|---|---|---|---|
property | published | FireDAC.Phys.SQLiteVDataSet.pas FireDAC.Phys.SQLiteVDataSet.hpp |
FireDAC.Phys.SQLiteVDataSet | TFDLocalSQL |
Description
Controls dataset cloning and copying.
Use the MultipleCursors property to control the dataset cloning and copying.
SQLite creates a cursor to handle a request to a specific dataset for each reference in a Local SQL command. Because TDataSet API does not allow to navigate through TDataSet simultaneously in different cursors, FireDAC clones a FireDAC dataset using the TFDMemTable, and copies a non-FireDAC dataset into TFDMemTable. Then this TFDMemTable is used to implement the cursor. The copying is a time-consuming operation.
When you are sure that each dataset registered with Local SQL engine will only be used by a single cursor at a time, then to avoid copying or cloning, set MultipleCursors to False. When MultipleCursors is False and the Local SQL engine needs additional cursors to the same dataset, then an exception is raised.
Note: Due to SQLite engine limitations, a join operation with a unidirectional dataset may lead to low performance when MultipleCursors is False.