Vue d’ensemble du service de curseur Microsoft pour OLE DB
Le service de curseur Microsoft pour OLE DB complète les fonctions de prise en charge des curseurs des fournisseurs de données. Par conséquent, l’utilisateur perçoit des fonctionnalités relativement uniformes de tous les fournisseurs de données.
Le service de curseur rend les propriétés dynamiques disponibles, et améliore le comportement de certaines méthodes. Par exemple, la propriété dynamique Optimize permet de créer des index temporaires pour faciliter certaines opérations, telles que la méthode Find .
Le service de curseur permet la prise en charge de la mise à jour par lots dans tous les cas. Il simule également des types de curseurs plus capables, tels que des curseurs dynamiques, quand un fournisseur de données ne peut fournir que des curseurs moins capables, tels que des curseurs statiques.
Mot clé
Pour appeler ce composant de service, définissez la propriété CursorLocation de l’objet Recordset ou Connection sur adUseClient.
connection.CursorLocation=adUseClient
recordset.CursorLocation=adUseClient
Propriétés dynamiques
Lorsque le service de curseur pour OLE DB est appelé, les propriétés dynamiques suivantes sont ajoutées à la collection Properties de l’objet Recordset. La liste complète des propriétés dynamiques des objets Connection et Recordset est figure dans l’Index des propriétés dynamiques ADO. Les noms de propriétés OLE DB associés sont inclus, le cas échéant, entre parenthèses après le nom de la propriété ADO.
Les modifications apportées à certaines propriétés dynamiques ne sont pas visibles pour la source de données sous-jacente une fois que le service de curseur a été appelé. Par exemple, la définition de la propriété Command Time out sur un objet Recordset n’est pas visible pour le fournisseur de données sous-jacent.
Recordset1.CursorLocation = adUseClient 'invokes cursor service
Recordset1.Open "authors", _
"Provider=SQLOLEDB;Data Source=DBServer;User Id=MyUserID;" & _
"Password=<password>;Initial Catalog=pubs;",,adCmdTable
Recordset1.Properties.Item("Command Time out") = 50
' 'Command Time out' property on DBServer is still default (30).
Si votre application requiert le service de curseur mais que vous devez définir des propriétés dynamiques sur le fournisseur sous-jacent, définissez les propriétés avant d’appeler le service de curseur. Les paramètres de propriété d’objet de commande sont toujours transmis au fournisseur de données sous-jacent, quel que soit l’emplacement du curseur. Par conséquent, vous pouvez également utiliser un objet commande pour définir les propriétés à tout moment.
Notes
La propriété dynamique DBPROP_SERVERDATAONINSERT n’est pas prise en charge par le service de curseur, même si elle est prise en charge par le fournisseur de données sous-jacent.
Nom de la propriété | Description |
---|---|
Auto Recalc (DBPROP_ADC_AUTORECALC) | Pour les jeux d’enregistrements créés avec le service de mise en forme des données (Data Shaping Service), cette valeur indique la fréquence à laquelle les colonnes calculées et agrégées sont calculées. La valeur par défaut (value=1) consiste à recalculer chaque fois que le service de mise en forme des données détermine que les valeurs ont changé. Si la valeur est 0, les colonnes calculées ou agrégées ne sont calculées que lorsque la hiérarchie est initialement générée. |
Batch Size (DBPROP_ADC_BATCHSIZE) | Indique le nombre d’instructions de mise à jour pouvant être traitées par lot avant leur envoi au magasin de données. Plus il y a d’instructions dans un lot, moins il y a d’allers-retours vers le magasin de données. |
Cache Child Rows (DBPROP_ADC_CACHECHILDROWS) | Pour les recordsets créés avec le service de mise en forme des données, cette valeur indique si les recordsets enfants sont stockés dans un cache pour une utilisation ultérieure. |
Cursor Engine Version (DBPROP_ADC_CEVER) | Indique la version du service de curseur utilisé. |
Maintain Change Status (DBPROP_ADC_MAINTAINCHANGESTATUS) | Indique le texte de la commande utilisée pour resynchroniser une ou plusieurs lignes dans une jointure de table multiple. |
Optimize | Indique si un index devrait être créé. Lorsque la valeur est True, autorise la création temporaire d’index pour améliorer l’exécution de certaines opérations. |
Reshape Name | Indique le nom de l’objet Recordset. Peut être référencé dans les commandes de mise en forme des données actuelles ou ultérieures. |
Resync Command | Indique une chaîne de commande personnalisée que la méthode Resync utilise quand la propriété Unique Table s’applique. |
Unique Catalog | Indique le nom de la base de données contenant la table référencée dans la propriété Unique Table. |
Unique Schema | Indique le nom du propriétaire de la table référencée dans la propriété Unique Table. |
table unique | Indique le nom de la seule table dans un objet Recordset créé à partir de plusieurs tables, qui peut être modifié par des insertions, des mises à jour ou des suppressions. |
Update Criteria (DBPROP_ADC_UPDATECRITERIA) | Indique quels champs dans la clause WHERE sont utilisés pour gérer les collisions se produisant lors d’une mise à jour. |
Update Resync (DBPROP_ADC_UPDATERESYNC) | Indique si la méthode Resync est implicitement appelée après la méthode UpdateBatch (et son comportement), lorsque la propriété Unique Table s’applique. |
Vous pouvez également définir ou récupérer une propriété dynamique en spécifiant son nom comme index pour la collection Properties. Par exemple, obtenez et imprimez la valeur actuelle de la propriété dynamique Optimize, puis définissez une nouvelle valeur, comme suit :
Debug.Print rs.Properties("Optimize")
rs.Properties("Optimize") = True
Comportement de propriété intégrée
Le service de curseur pour OLE DB affecte également le comportement de certaines propriétés intégrées.
Nom de la propriété | Description |
---|---|
CursorType | Complète les types de curseurs disponibles pour un objet Recordset. |
LockType | Complète les types de verrous disponibles pour un objet Recordset. Active les mises à jour par lots. |
Sort | Spécifie un ou plusieurs noms de champs sur lesquels l’objet Recordset est trié, et indique si chaque champ est trié dans l’ordre croissant ou décroissant. |
Comportement de la méthode
Le service de curseur pour OLE DB active ou affecte le comportement de la méthode Append de l’objet Field, ainsi que des méthodes Open, Resync, UpdateBatch et Save de l’objet Recordset.