Partager via


NextRecordset, méthode (ADO)

Efface l’objet Recordset actuel et renvoie l’objet Recordset suivant en passant par une série de commandes.

Syntaxe

  
Set recordset2 = recordset1.NextRecordset(RecordsAffected )  

Valeur de retour

Renvoie un objet Recordset. Dans le modèle de syntaxe, recordset1 et recordset2 peuvent être le même objet Recordset, ou vous pouvez utiliser des objets distincts. Lors de l’utilisation d’objets Recordset distincts, la réinitialisation de la propriété ActiveConnection sur l’objet Recordset d’origine (recordset1) après l’appel de NextRecordset génère une erreur.

Paramètres

RecordsAffected
facultatif. Variable Long à laquelle le fournisseur retourne le nombre d’enregistrements affectés par l’opération actuelle.

Notes

Ce paramètre retourne uniquement le nombre d’enregistrements affectés par une opération ; il ne retourne pas de nombre d’enregistrements à partir d’une instruction select utilisée pour générer le Recordset.

Notes

Utilisez la méthode NextRecordset pour renvoyer les résultats de la commande suivante dans une instruction de commande composée ou d’une procédure stockée qui retourne plusieurs résultats. Si vous ouvrez un objet Recordset en fonction d’une instruction de commande composée (par exemple, « SELECT * FROM table1 ; SELECT * FROM table2 ») à l’aide de la méthode Execute sur une commande ou de la méthode Open sur un recordset, ADO exécute uniquement la première commande et retourne les résultats au recordset. Pour accéder aux résultats des commandes suivantes dans l’instruction, appelez la méthode NextRecordset.

Tant qu’il existe des résultats supplémentaires et que l’objet Recordset contenant les instructions composées n’est pas déconnecté ou marshalé dans les limites de processus, la méthode NextRecordset continue de retourner des objets Recordset. Si une commande de retour de ligne s’exécute correctement, mais ne retourne aucun enregistrement, l’objet Recordset retourné est ouvert mais vide. Testez ce cas en vérifiant que les propriétés BOF et EOF sont toutes deux True. Si une commande qui ne retourne pas de ligne s’exécute correctement, l’objet Recordset retourné est fermé, que vous pouvez vérifier en testant la propriété State sur le Recordset. Lorsqu’il n’y a plus de résultats, le Recordset est défini sur Nothing.

La méthode NextRecordset n’est pas disponible sur un objet Recordset déconnecté, où ActiveConnection a été défini sur Nothing (dans Microsoft Visual Basic) ou NULL (dans d’autres langages).

Si une modification est en cours en mode mise à jour immédiate, l’appel de la méthode NextRecordset génère une erreur ; appelez d’abord la méthode Update ou CancelUpdate.

Pour passer des paramètres pour plusieurs commandes de l’instruction composée en remplissant la collection Parameters ou en passant un tableau avec l’appel Open ou Execute d’origine, les paramètres doivent être dans le même ordre dans la collection ou le tableau que leurs commandes respectives dans la série de commandes. Vous devez terminer la lecture de tous les résultats avant de lire les valeurs des paramètres de sortie.

Votre fournisseur OLE DB détermine quand chaque commande d’une instruction composée est exécutée. Le fournisseur Microsoft OLE DB pour SQL Server, par exemple, exécute toutes les commandes d’un lot lors de la réception de l’instruction composée. Les recordsets résultants sont simplement retournés lorsque vous appelez NextRecordset.

Toutefois, d’autres fournisseurs peuvent exécuter la commande suivante dans une instruction uniquement après l’appel de NextRecordset. Pour ces fournisseurs, si vous fermez explicitement l’objet Recordset avant de parcourir l’instruction de commande entière, ADO n’exécute jamais les commandes restantes.

S'applique à

Recordset, objet (ADO)

Voir aussi

NextRecordset, exemple de méthode (VB)
NextRecordset, exemple de méthode (VC++)