FireDAC.Stan.Option.TFDFetchOptions.CursorKind

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

property CursorKind: TFDCursorKind read GetCursor write SetCursor  stored IsCKS default ckAutomatic;

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

ckAutomatic

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.

ckDefault

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.

ckDynamic

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.

ckStatic

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.

ckForwardOnly

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

  • Si le serveur est une version 2005 ou ultérieure.
  • Ou Mode est fmExactRecsMax ou fmAll.
  • Ou DirectExecute est définie sur True.

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 fmExactRecsMax ou fmAll.

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.

Voir aussi