FireDAC.Stan.Option.TFDFetchOptions.CursorKind
Delphi
property CursorKind: TFDCursorKind read GetCursor write SetCursor
C++
__property TFDCursorKind CursorKind = {read=GetCursor, write=SetCursor, stored=IsCKS, default=0};
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
property | published | FireDAC.Stan.Option.pas FireDAC.Stan.Option.hpp |
FireDAC.Stan.Option | TFDFetchOptions |
Description
Spécifie le type de curseur utilisé par une commande ou un ensemble de données FireDAC.
Définissez CursorKind pour indiquer le type de curseur utilisé par une commande ou un ensemble de données FireDAC pour l'ensemble de résultats lors de son ouverture. CursorKind doit être définie avant de préparer la commande ou l'ensemble de données.
Pour modifier CursorKind pour un ensemble de données déjà utilisé, l'application peut appeler au préalable la méthode Disconnect.
CursorKind affecte les éléments suivants :
- Le délai de renvoi du premier enregistrement ou d'ouverture de l'ensemble de résultats.
- Le délai de renvoi de tous les enregistrements de l'ensemble de résultats.
- La capacité d'utiliser plusieurs curseurs ouverts.
- La stabilité du curseur.
- Les ressources SGBD utilisées.
- Le mode TFDTable.
Option |
Description |
---|---|
|
Le pilote choisit automatiquement le type de curseur, en fonction des autres opérations d'extraction et de la structure de l'ensemble de résultats. |
|
Le pilote utilise un curseur par défaut côté client. Le curseur par défaut produit un instantané des enregistrements, tels qu'ils étaient au moment de l'exécution de la requête. Peut fournir des performances d'extraction maximales, mais nécessite plus de temps pour renvoyer le premier enregistrement car tous les enregistrements de l'ensemble de résultats sont envoyés au client lors de l'appel à Open. Certains SGBD supportent un seul curseur par défaut actif par connexion. |
|
Le pilote utilise un curseur dynamique côté serveur. Les lignes du curseur dynamique peuvent être affectées par les mises à jour des tables de requête, alors que le curseur est actif. Peut nécessiter moins de temps pour renvoyer le premier enregistrement et plus de temps pour renvoyer tous les enregistrements. |
|
Le pilote utilise un curseur statique côté serveur. Le curseur statique produit un instantané des enregistrements, tels qu'ils étaient au moment de l'exécution de la requête. Les performances d'extraction peuvent être similaires à celles du curseur dynamique. |
|
Le pilote utilise un curseur avant uniquement côté serveur. Pour FireDAC, les curseurs avant uniquement sont similaires aux curseurs dynamiques ou statiques. Pour contrôler les capacités de défilement de l'ensemble de données FireDAC, utilisez la propriété Unidirectional. |
La valeur par défaut est ckAutomatic
.
La plupart des pilotes FireDAC supportent uniquement certains types de curseurs ou n'utilisent pas du tout cette option. Pour plus de détails, consultez la documentation du SGBD. FireDAC choisit le type de curseur réel lorsque CursorKind=ckAutomatic
, comme indiqué ci-dessous :
SGBD |
Conditions |
Type de curseur réel |
---|---|---|
Microsoft SQL Server |
|
Curseur par défaut. |
Sinon. |
Curseur statique. | |
IBM DB2 |
-- |
Curseur avant uniquement. |
Sybase SQL Anywhere, Microsoft Access |
Si l'ensemble de résultats comporte des champs BLOB. |
Curseur dynamique. |
Sinon. |
Curseur par défaut. | |
PostgreSQL |
Si Mode est |
Curseur par défaut. |
Sinon. |
Curseur statique. | |
Autres |
-- |
Curseur par défaut. |
Pour TFDTable, ckAutomatic active la fenêtre Données dynamiques, lorsqu'une table comporte des champs d'identification unique. ckDynamic
active la fenêtre Données dynamiques sans condition, et une exception est déclenchée si une table de base de données ne comporte pas de clé unique. Les autres types de curseur désactivent le mode Fenêtre Données dynamiques et définissent TFDTable en mode standard, lorsqu'elle agit comme TFDQuery.