AddNew, méthode (ADO)

Crée un enregistrement pour un objet Recordset pouvant être mis à jour.

Syntaxe

  
recordset.AddNew FieldList, Values  

Paramètres

recordset
Un objet Recordset.

FieldList
facultatif. Un seul nom, ou un tableau de noms ou de positions ordinales des champs du nouvel enregistrement.

Valeurs
facultatif. Valeur unique ou tableau de valeurs pour les champs du nouvel enregistrement. Si Fieldlist est un tableau, les valeurs doivent également être un tableau avec le même nombre de membres; sinon, une erreur se produit. L’ordre des noms de champs doit correspondre à l’ordre des valeurs de champ dans chaque tableau.

Notes

Utilisez la méthode AddNew pour créer et initialiser un nouvel enregistrement. Utilisez la méthode Supports avec adAddNew (valeur CursorOptionEnum ) pour vérifier si vous pouvez ajouter des enregistrements à l’objet Recordset actif.

Après avoir appelé la méthode AddNew , le nouvel enregistrement devient l’enregistrement actif et reste actif après avoir appelé la méthode Update . Étant donné que le nouvel enregistrement est ajouté à l’objet Recordset, un appel à MoveNext suivant la mise à jour passe à la fin de l’objet Recordset, ce qui rend EOF True. Si l’objet Recordset ne prend pas en charge les signets, vous ne pouvez peut-être pas accéder au nouvel enregistrement une fois que vous passez à un autre enregistrement. Selon votre type de curseur, vous devrez peut-être appeler la méthode Requête pour rendre le nouvel enregistrement accessible.

Si vous appelez AddNew lors de la modification de l’enregistrement actif ou lors de l’ajout d’un nouvel enregistrement, ADO appelle la méthode Mettre à jour pour enregistrer les modifications, puis crée l’enregistrement.

Le comportement de la méthode AddNew dépend du mode de mise à jour de l’objet Recordset et de la transmission des arguments Fieldlist et Valeurs .

En mode de mise à jour immédiate (dans lequel le fournisseur écrit des modifications dans la source de données sous-jacente une fois que vous appelez la méthode Update ), appelez la méthode AddNew sans arguments définit la propriété EditMode sur adEditAdd (valeur EditModeEnum ). Le fournisseur met en cache toutes les modifications de valeur de champ localement. L’appel de la méthode Update publie le nouvel enregistrement dans la base de données et réinitialise la propriété EditMode à adEditNone (valeur EditModeEnum). Si vous transmettez les arguments Fieldlist et Valeurs , ADO publie immédiatement le nouvel enregistrement dans la base de données (aucun appel de mise à jour n’est nécessaire) ; la valeur de la propriété EditMode ne change pas (adEditNone).

En mode de mise à jour par lots (dans lequel le fournisseur met en cache plusieurs modifications et les écrit dans la source de données sous-jacente uniquement lorsque vous appelez la méthode UpdateBatch), l’appel de la méthode AddNew sans argument définit la propriété EditMode sur adEditAdd. Le fournisseur met en cache toutes les modifications de valeur de champ localement. L’appel de la méthode Update ajoute le nouvel enregistrement au jeu d’enregistrements actif, mais le fournisseur ne publie pas les modifications apportées à la base de données sous-jacente, ou réinitialise le EditMode à adEditNone, jusqu’à ce que vous appeliez la méthode UpdateBatch . Si vous transmettez les arguments Fieldlist et Valeurs , ADO envoie le nouvel enregistrement au fournisseur pour le stockage dans un cache et définit EditMode sur adEditAdd; vous devez appeler la méthode UpdateBatch pour publier le nouvel enregistrement dans la base de données sous-jacente.

Exemple

L’exemple suivant montre comment utiliser la méthode AddNew avec la liste de champs et la liste de valeurs incluses, pour voir comment inclure la liste de champs et la liste de valeurs en tant que tableaux.

create table aa1 (intf int, charf char(10))  
insert into aa1 values (2, 'aa')  
  
Dim cn As New adodb.Connection  
Dim rs As New adodb.Recordset  
Dim cmd As New adodb.Command  
  
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=alexverb2;uid=sa;pwd=foo$bar00;"  
  
cn.Open  
rs.Open "select * from xxx..aa1", cn, adOpenKeyset, adLockOptimistic  
  
Dim fieldsArray(1) As Variant  
fieldsArray(0) = "intf"  
fieldsArray(1) = "charf"  
Dim values(1) As Variant  
values(0) = 4  
values(1) = "as"  
rs.AddNew fieldsArray, values  
rs.Update  

S'applique à

Recordset, objet (ADO)

Voir aussi

AddNew, exemple de méthode (VB)
AddNew, exemple de méthode (VBScript)
AddNew, exemple de méthode (VC++)
CancelUpdate, méthode (ADO)
EditMode, propriété
Requery, méthode
Supports, méthode
Update, méthode
UpdateBatch, méthode