Open, méthode (objet Recordset ADO)

Ouvre un curseur sur un objet Recordset.

Syntaxe

  
recordset.Open Source, ActiveConnection, CursorType, LockType, Options  

Paramètres

Source
facultatif. Variant qui prend la valeur d’un objet Command valide, d’une instruction SQL, d’un nom de table, d’un appel de procédure stockée, d’une URL ou du nom d’un fichier ou d’un objet Stream contenant un objet Recordset stocké de manière persistante.

ActiveConnection
facultatif. Variant qui prend la valeur d’un nom de variable objet Connection valide, ou String contenant des paramètres ConnectionString.

CursorType
facultatif. Valeur CursorTypeEnum déterminant le type de curseur que le fournisseur doit utiliser lors de l’ouverture de l’objet Recordset. La valeur par défaut est adOpenForwardOnly.

LockType
facultatif. Valeur LockTypeEnum déterminant le type de verrouillage (concurrence) que le fournisseur doit utiliser lors de l’ouverture de l’objet Recordset. La valeur par défaut est adLockReadOnly.

Options
facultatif. Valeur Long indiquant comment le fournisseur doit évaluer l’argument Source s’il représente autre chose qu’un objet Command, ou que l’objet Recordset doit être restauré à partir d’un fichier dans lequel il a été précédemment enregistré. Il peut avoir une ou plusieurs valeurs CommandTypeEnum ou ExecuteOptionEnum, qui peuvent être combinées avec un opérateur OR au niveau du bit.

Notes

Si vous ouvrez un objet Recordset à partir d’un objet Stream contenant un objet Recordset persistant, l’utilisation d’une valeur ExecuteOptionEnum d’adAsyncFetchNonBlocking sera sans effet. L’extraction sera synchrone et bloquante.

Notes

Les valeurs ExecuteOpenEnum d’adExecuteNoRecords ou d’adExecuteStream ne devraient pas être utilisées avec la méthode Open.

Notes

Le curseur par défaut pour un objet ADO Recordset est un curseur avant uniquement en lecture seule sur le serveur.

L’utilisation de la méthode Open sur un objet Recordset ouvre un curseur représentant les enregistrements d’une table de base, les résultats d’une requête ou un objet Recordset précédemment enregistré.

Utilisez l’argument facultatif Source pour spécifier une source de données en utilisant une variable objet Command, une instruction SQL, une procédure stockée, un nom de table, une URL ou un nom de chemin d’accès de fichier complet. Si l’argument Source est un nom de chemin d’accès de fichier, il peut s’agir d’un chemin d’accès complet (« c:\dir\file.rst »), d’un chemin relatif (« ..\file.rst »), ou d’une URL (https://files/file.rst).

Il n’est pas judicieux d’utiliser l’argument Source de la méthode Open pour effectuer une requête action qui ne retourne pas d’enregistrement, car il n’existe aucun moyen simple de déterminer si l’appel a réussi. L’objet Recordset retourné par une telle requête est fermé. Pour effectuer une requête qui ne retourne pas d’enregistrement, comme une instruction SQL INSERT, appelez plutôt la méthode Execute d’un objet Command, ou la méthode Execute d’un objet Connection.

L’argument ActiveConnection correspond à la propriété ActiveConnection et spécifie dans quelle connexion ouvrir l’objet Recordset. Si vous passez une définition de connexion pour cet argument, ADO ouvre une nouvelle connexion à l’aide des paramètres spécifiés. Après avoir ouvert l’objet Recordset avec un curseur côté client en définissant la propriété CursorLocation sur adUseClient, vous pouvez modifier la valeur de cette propriété pour envoyer des mises à jour à un autre fournisseur. Vous pouvez également définir cette propriété sur Nothing (dans Microsoft Visual Basic) ou NULL pour déconnecter l’objet Recordset de tout fournisseur. Toutefois, la modification de l’argument ActiveConnection pour un curseur côté serveur génère une erreur.

Pour les autres arguments correspondant directement aux propriétés d’un objet Recordset (Source, CursorType et LockType), la relation des arguments aux propriétés est la suivante :

  • La propriété est en lecture/écriture avant l’ouverture de l’objet Recordset.

  • Les paramètres de propriété sont utilisés, sauf si vous passez les arguments correspondants lors de l’exécution de la méthode Open. Si vous passez un argument, il remplace le paramètre de propriété correspondant et celui-ci est mis à jour avec la valeur de l’argument.

  • Une fois l’objet Recordset ouvert, ces propriétés deviennent en lecture seule.

Notes

La propriété ActiveConnection est en lecture seule pour les objets Recordset dont la propriété Source est définie sur un objet Command valide, même si l’objet Recordset n’est pas ouvert.

Si vous passez un objet Command dans l’argument Source, et passez également un argument ActiveConnection, une erreur se produit. La propriété ActiveConnection de l’objet Command doit déjà être définie sur un objet Connection ou une chaîne de connexion valides.

Si vous passez autre chose qu’un objet Command dans l’argument Source, vous pouvez utiliser l’argument Options pour optimiser l’évaluation de l’argument Source. Si l’argument Options n’est pas défini, vous pouvez rencontrer une baisse des performances, car ADO doit effectuer des appels au fournisseur pour déterminer si l’argument est une instruction SQL, une procédure stockée, une URL ou un nom de table. Si vous savez le type de Source que vous utilisez, la définition de l’argument Options indique à ADO de passer directement au code approprié. Si l’argument Options ne correspond pas au type de Source, une erreur se produit.

Si vous passez un objet Stream dans l’argument Source, vous ne devez pas passer d’informations dans les autres arguments. Cela générera une erreur. Les informations ActiveConnection ne sont pas conservées lors de l’ouverture d’un objet Recordset à partir d’un objet Stream.

La valeur par défaut de l’argument Options est adCmdFile si aucune connexion n’est associée à l’objet Recordset. C’est généralement le cas des objets Recordset stockés de manière persistante.

Si la source de données ne retourne aucun enregistrement, le fournisseur définit les propriétés BOF et EOF sur True, et la position de l’enregistrement actif est indéfinie. Vous pouvez toujours ajouter de nouvelles données à cet objet Recordset vide si le type de curseur l’autorise.

Lorsque vous avez terminé vos opérations sur un objet Recordset ouvert, utilisez la méthode Close pour libérer toutes les ressources système associées. La fermeture d’un objet n’a pas pour effet de le supprimer de la mémoire. Vous pourrez modifier ses paramètres de propriété et utiliser la méthode Open pour l’ouvrir ultérieurement. Pour éliminer complètement un objet de la mémoire, définissez la variable objet sur Nothing.

Avant que la propriété ActiveConnection soit définie, appelez la méthode Open sans opérande pour créer une instance d’un objet Recordset créé en ajoutant des champs à la collection RecordsetFields.

Si vous avez défini la propriété CursorLocation sur adUseClient, vous pouvez récupérer des lignes de manière asynchrone de deux façons. La méthode recommandée consiste à définir Options sur adAsyncFetch. Vous pouvez également utiliser la propriété dynamique « Asynchronous Rowset Processing » dans la collection Properties, mais les événements récupérés associés peuvent être perdus si vous ne définissez pas le paramètre Options sur adAsyncFetch.

Notes

L’extraction en arrière-plan dans le fournisseur MS Remote est prise en charge uniquement par le biais du paramètre Options de la méthode Open.

Notes

Les URL utilisant le schéma HTTP appellent automatiquement le fournisseur Microsoft OLE DB pour la publication Internet. Pour plus d’informations, consultez URL absolues et relatives.

Certaines combinaisons de valeurs CommandTypeEnum et ExecuteOptionEnum ne sont pas valides. Pour plus d’informations sur les options qui ne peuvent pas être combinées, consultez les rubriques ExecuteOptionEnum et CommandTypeEnum.

S'applique à

Recordset, objet (ADO)

Voir aussi

Open et Close, exemple de méthodes (VB)
Open et Close, exemple de méthodes (VBScript)
Open et Close, exemple de méthodes (VC++)
Save et Open, exemple de méthodes (VB)
Open, méthode (objet Connection ADO)
Open, méthode (objet Record ADO)
Open, méthode (Stream ADO)
OpenSchema, méthode
Save, méthode