Partager via


Curseurs OLE DB (SQL Server Compact)

Microsoft SQL Server Compact 3.5 prend en charge les types de curseurs suivants : table de base, avant uniquement et capable de défiler. Lorsque l'un de ces curseurs pris en charge est utilisé, le client ne peut détenir qu'une ligne ouverte.

Curseur de table de base

Le curseur de table de base est le plus rapide des curseurs pris en charge et le seul qui interagisse directement avec le moteur de stockage. Ce curseur prend en charge les mises à jour, les signets et les index, ainsi que les méthodes Seek et SetRange de IRowsetIndex. Le curseur de table de base prend éventuellement en charge le mode de mise à jour différée en affichant l'interface IRowsetUpdate lorsque le client transmet DBPROP_IRowsetUpdate en tant que valeur TRUE. Ce curseur bénéficie d'une appartenance dynamique ; les propriétés DBPROP_OTHERINSERT et DBPROP_OTHERUPDATEDELETE ont pour valeur TRUE.

Les curseurs de table de base ne peuvent être ouverts que par le biais de IOpenRowset::OpenRowset. L'utilisation d'une instruction « SELECT * FROM table » génère un curseur de processeur de requêtes, avant uniquement ou capable de défiler, pas un curseur de table de base. Seuls les curseurs de table de base prennent en charge les mises à jour.

Curseur avant uniquement

Bien que le curseur en lecture seule avant uniquement soit, du point de vue de la rapidité, le premier des curseurs de processeur de requêtes et le deuxième de tous les curseurs, il offre le moins de fonctionnalités. Il ne prend pas en charge les signets ou les mises à jour.

Curseur capable de défiler

Le curseur en lecture seule capable de défiler est le curseur de processeur de requêtes le plus fonctionnel. L'ensemble de résultats de ce curseur est mis en cache. Ce dispositif permet de redémarrer le curseur rapidement mais accroît sa consommation de ressources, notamment dans le cas des requêtes dont les ensembles de résultats sont volumineux. Les résultats étant mis en cache, les modifications apportées aux tables de base sous-jacentes pour une requête ne sont reflétées dans les résultats de la requête que si celle-ci est réexécutée.

Paramètres de propriété requis

Le tableau ci-après indique les paramètres de propriété requis pour chaque type de curseur.

Paramètre de propriété

Table de base

Avant uniquement

Capable de défiler

DBPROP_BOOKMARKS

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE

DBPROP_OWNUPDATEDDELETE

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OWNINSERT

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OTHERUPDATEDELETE

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OTHERINSERT

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_CANFETCHBACKWARDS

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE

DBPROP_QUICKRESTART

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE