Comportements des curseurs

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

Paramètres de comportement du curseur

Caractéristiques du curseur côté serveur demandées

SQL_SCROLLABLE et SQL_SENSITIVE

Curseur de jeu de clés et accès concurrentiel optimiste basé sur la version

SQL_SCROLLABLE et SQL_INSENSITIVE

Curseur statique et concurrence en lecture seule

SQL_SCROLLABLE et SQL_UNSPECIFIED

Curseur statique et concurrence en lecture seule

SQL_NONSCROLLABLE et SQL_SENSITIVE

Curseur avant uniquement et accès concurrentiel optimiste basé sur la version

SQL_NONSCROLLABLE et SQL_INSENSITIVE

Jeu de résultats par défaut (avant uniquement, en lecture seule)

SQL_NONSCROLLABLE et SQL_UNSPECIFIED

Jeu de résultats par défaut (avant uniquement, en lecture seule)

L'accès concurrentiel optimiste basé sur la version requiert une colonne timestamp 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 timestamp, le serveur utilise l'accès concurrentiel optimiste basé sur les valeurs.

Capacité de défilement

Quand SQL_ATTR_CURSOR_SCROLLABLE a la valeur SQL_SCROLLABLE, le curseur prend en charge la totalité des différentes valeurs du paramètre FetchOrientation de SQLFetchScroll. Quand SQL_ATTR_CURSOR_SCROLLABLE a la valeur SQL_NONSCROLLABLE, le curseur prend uniquement en charge une valeur FetchOrientation de SQL_FETCH_NEXT.

Sensibilité

Quand SQL_ATTR_CURSOR_SENSITIVITY est défini avec la valeur SQL_SENSITIVE, le curseur reflète les modifications des données effectuées par l'utilisateur en cours ou validées par d'autres utilisateurs. Quand SQL_ATTR_CURSOR_SENSITIVITY est défini avec la valeur SQL_INSENSITIVE, le curseur ne reflète pas les modifications des données.

Voir aussi

Concepts