FireDAC.Stan.Option.TFDFetchOptions.CursorKind
Delphi
property CursorKind: TFDCursorKind read GetCursor write SetCursor stored IsCKS default ckAutomatic;
C++
__property TFDCursorKind CursorKind = {read=GetCursor, write=SetCursor, stored=IsCKS, default=0};
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
property | published | FireDAC.Stan.Option.pas FireDAC.Stan.Option.hpp |
FireDAC.Stan.Option | TFDFetchOptions |
Beschreibung
Gibt den Typ des Cursors an, den eine FireDAC-Anweisung oder -Datenmenge verwendet.
Setzen Sie CursorKind, um den Typ des Cursors anzugeben, den die FireDAC-Anweisung oder -Datenmenge für die Ergebnismenge beim Öffnen verwendet.CursorKind muss vor der Vorbereitung der Anweisung oder der Datenmenge festgelegt werden.
Um den Cursortyp (CursorKind) für eine bereits verwendete Datenmenge zu ändern, kann in der Anwendung zuerst die Methode Disconnect aufgerufen werden.
CursorKind wirkt sich auf Folgendes aus:
- Die Dauer bis zur Rückgabe des ersten Datensatzes oder zum Öffnen der Ergebnismenge.
- Die Dauer bis zur Rückgabe der Datensätze der Ergebnismenge.
- Die Möglichkeit, mehrere geöffnete Cursors zu verwenden.
- Die Cursor-Stabilität.
- Die verwendeten DBMS-Ressourcen.
- Den TFDTable-Modus.
Option |
Beschreibung |
---|---|
|
Ein Treiber wählt den Cursortyp abhängig von den anderen Abrufoptionen und der Struktur der Ergebnismenge automatisch aus. |
|
Ein Treiber verwendet den clientseitigen Standardcursor. Ein Standardcursor erzeugt einen Schnappschuss der Datensätze zum Zeitpunkt der Ausführung der Abfrage. Kann zur maximalen Abrufleistung führen, erfordert aber mehr Zeit, um den ersten Datensatz zurückzugeben, weil alle Datensätze der Ergebnismenge beim Open-Aufruf an den Client gesendet werden. Einige DBMSs unterstützen nur einen einzelnen aktiven Standardcursor pro Verbindung. |
|
Ein Treiber verwendet einen dynamischen serverseitigen Cursor. Dynamische Cursorzeilen können von Aktualisierungen der Abfragetabellen betroffen sein, während der Cursor aktiv ist. Erfordert eventuell weniger Zeit, um den ersten Datensatz zurückzugeben, und mehr Zeit, um alle Datensätze zurückzugeben. |
|
Ein Treiber verwendet einen dynamischen serverseitigen Cursor. Ein statischer Cursor erzeugt einen Schnappschuss der Datensätze zum Zeitpunkt der Ausführung der Abfrage. Die Abrufleistung kann der des dynamischen Cursors entsprechen. |
|
Ein Treiber verwendet einen nur vorwärts ausgerichteten, serverseitigen Cursor. Für FireDAC entsprechen nur vorwärts ausgerichtete Cursors den dynamischen oder statischen Cursors. Verwenden Sie die Eigenschaft Unidirectional, um die Bildlaufmöglichkeiten von FireDAC-Datenmengen zu steuern. |
Der Standardwert ist ckAutomatic
.
Die meisten FireDAC-Treiber unterstützen nur einige Cursortypen oder verwenden diese Option überhaupt nicht. Einzelheiten finden Sie in der DBMS-Dokumentation. Wenn CursorKind = ckAutomatic
, dann wählt FireDAC den folgenden, eigentlichen Cursortyp aus:
DBMS |
Bedingungen |
Eigentlicher Cursortyp |
---|---|---|
Microsoft SQL Server |
|
Standardcursor |
Andernfalls |
Statischer Cursor | |
IBM DB2 |
-- |
Nur vorwärts gerichteter Cursor |
Sybase SQL Anywhere, Microsoft Access |
Wenn die Ergebnismenge BLOB-Felder enthält. |
Dynamischer Cursor |
Andernfalls |
Standardcursor | |
PostgreSQL |
Wenn Mode |
Standardcursor |
Andernfalls |
Statischer Cursor | |
Andere |
-- |
Standardcursor |
Für TFDTable aktiviert ckAutomatic
das Live-Datenfenster, wenn eine Tabelle eindeutige Kennzeichnungsfelder enthält.ckDynamic
aktiviert das Live-Datenfenster ohne Bedingung, und eine Exception wird ausgelöst, wenn eine DB-Tabelle keinen eindeutigen Schlüssel enthält. Andere Cursortypen deaktivieren den Live-Datenfenstermodus und setzen TFDTable auf den Standardmodus, wenn es als TFDQuery fungiert.