Comportements des curseurs

ODBC prend en charge les options ISO pour spécifier le comportement des curseurs en spécifiant leur défilement et leur sensibilité. Ces comportements sont spécifiés en définissant les options SQL_ATTR_CURSOR_SCROLLABLE et SQL_ATTR_CURSOR_SENSITIVITY sur un appel à SQLSetStmtAttr. Le pilote ODBC SQL Server Native Client implémente ces options en demandant des curseurs de serveur avec les caractéristiques suivantes.

Paramètres de comportement du curseur Caractéristiques du curseur serveur demandées
SQL_SCROLLABLE et SQL_SENSITIVE Curseur piloté par keyset et accès concurrentiel optimiste basé sur la version
SQL_SCROLLABLE et SQL_INSENSITIVE Curseur statique et accès concurrentiel en lecture seule
SQL_SCROLLABLE et SQL_UNSPECIFIED Curseur statique et accès concurrentiel en lecture seule
SQL_NONSCROLLABLE et SQL_SENSITIVE Curseur vers l’avant uniquement et accès concurrentiel optimiste basé sur la version
SQL_NONSCROLLABLE et SQL_INSENSITIVE Jeu de résultats par défaut (forward-only, read-only)
SQL_NONSCROLLABLE et SQL_UNSPECIFIED Jeu de résultats par défaut (forward-only, read-only)

L’accès concurrentiel optimiste basé sur la version nécessite une colonne d’horodatage dans la table sous-jacente. Si le contrôle d’accès concurrentiel optimiste basé sur la version est demandé sur une table qui n’a pas de colonne d’horodatage , le serveur utilise la concurrence optimiste basée sur les valeurs.

Défilement

Lorsque SQL_ATTR_CURSOR_SCROLLABLE est défini sur SQL_SCROLLABLE, le curseur prend en charge toutes les valeurs différentes pour le paramètre FetchOrientation de SQLFetchScroll. Lorsque SQL_ATTR_CURSOR_SCROLLABLE est défini sur SQL_NONSCROLLABLE, le curseur prend uniquement en charge une valeur FetchOrientation de SQL_FETCH_NEXT.

Sensibilité

Lorsque SQL_ATTR_CURSOR_SENSITIVITY est défini sur SQL_SENSITIVE, le curseur reflète les modifications apportées aux données effectuées par l’utilisateur actuel ou validées par d’autres utilisateurs. Lorsque SQL_ATTR_CURSOR_SENSITIVITY est défini sur SQL_INSENSITIVE, le curseur ne reflète pas les modifications de données.

Voir aussi

Utilisation de curseurs (ODBC)