Exporter (0) Imprimer
Développer tout

Options de génération SQL avancées, boîte de dialogue

Permet de contrôler la manière dont les instructions SQL ou les procédures stockées sont créées pour un adaptateur. Cette boîte de dialogue s'affiche lorsque vous cliquez sur le bouton Options avancées dans la page Instructions SQL de l'un des Assistant de données. Toutes les options de cette boîte de dialogue se rapportent aux instructions ou procédures qui sont appelées dans le cadre d'une procédure de mise à jour (CustomersTableAdapter.Update(DataTable), par exemple).

Liste des éléments d'interface utilisateur

Générer des instructions Insert, Update et Delete

Si vous sélectionnez cette option, l'Assistant crée des instructions SQL ou des procédures stockées les objets UpdateCommand, InsertCommand et DeleteCommand de l'adaptateur (les détails de l'instruction ou de la procédure à générer sont contrôlés par le volet Choisir un type de requête de l'Assistant). Si cette case à cocher est désactivée, les options restantes dans la boîte de dialogue sont désactivées, car elles ne s'appliquent pas.

Vous la désactivez normalement dans les circonstances suivantes :

  • L'adaptateur ne servira qu'à lire les données dans une source de données, et non à les récrire. En désactivant cette case à cocher, vous réduisez la quantité de code dans votre formulaire ou composant.

  • Vous remplirez les commandes vous-même, une fois que l'Assistant aura terminé.

Si cette case à cocher est désactivée, il n'existe aucune instruction ou procédure stockée pour les objets UpdateCommand, InsertCommand ou DeleteCommand et l'appel de la méthode Update de l'adaptateur de données n'a aucun effet.

Utiliser l'accès concurrentiel optimiste

Lorsque cette case à cocher est activée, l'Assistant génère une commande SQL avec une clause WHERE qui met en correspondance la valeur de chaque colonne dans l'enregistrement mis à jour avec l'enregistrement approprié dans la base de données.

RemarqueRemarque

Cette option n'est disponible que si la case à cocher Générer des instructions Insert, Update et Delete est activée.

Par exemple, la syntaxe pour une instruction update générée avec cette option pourra être :

UPDATE Customers
SET CustomerID = ?, CompanyName = ?, Phone = ?
WHERE (CustomerID = ?) AND (CompanyName = ?) AND 
      (Phone = ? OR ? IS NULL AND Phone IS NULL);

Si cette case à cocher est désactivée, la syntaxe sera :

UPDATE Customers
SET CustomerID = ?, CompanyName = ?, Phone = ?
WHERE (CustomerID = ?)

La vérification de chaque valeur de colonne provoque un échec de la commande si l'une des colonnes a changé, ce qui se produit si un autre utilisateur a modifié l'enregistrement depuis qu'il a été lu dans votre groupe de données. Si l'option n'est pas définie et que la clause WHERE recherche simplement l'enregistrement, les modifications effectuées par d'autres utilisateurs peuvent éventuellement être substituées sans avertissement par votre mise à jour.

Pour plus d'informations sur la vérification de l'accès concurrentiel lors d'une mise à jour à partir d'un groupe de données, consultez Introduction à l'accès concurrentiel aux données dans ADO.NET.

Actualiser la table de données

Lorsque cette case à cocher est activée, l'Assistant génère une instruction Select pour chaque commande Update et Insert.

RemarqueRemarque

Cette option n'est disponible que si la case à cocher Générer des instructions Insert, Update et Delete est activée.

L'instruction Select est ajoutée à l'objet command correspondant dans l'adaptateur et elle est exécutée immédiatement à la fin de l'exécution de la commande Update ou Insert. L'instruction Select est configurée pour retourner un seul enregistrement, à savoir la version à jour de l'enregistrement qui vient d'être mis à jour.

RemarqueRemarque

Vous pouvez ajouter plusieurs instructions à la propriété CommandText d'un objet command d'un adaptateur en délimitant ces instructions par un point-virgule (;).

Lorsque vous obtenez une nouvelle version de l'enregistrement, les valeurs des colonnes mises à jour pour cet enregistrement sont écrites dans le groupe de données, y compris :

  • les colonnes dans lesquelles la base de données remplit une valeur par défaut ;

  • les colonnes à incrémentation automatique ;

  • les colonnes d'horodatage ;

  • les colonnes affectées par le résultat d'un déclencheur de base de données.

Étant donné que cette option provoque l'exécution de deux instructions par mise à jour (l'instruction de mise à jour, suivie d'une instruction Select), elle peut être inefficace lorsque la majorité des enregistrements d'un groupe de données sont mis à jour. Dans ce cas, il est plus efficace de remplir à nouveau l'ensemble de la table de données simultanément, après l'exécution de toutes les mises à jour.

RemarqueRemarque

L'actualisation de la table de données n'est prise en charge que par les bases de données qui prennent en charge le traitement par lots des instructions SQL. Par exemple, Microsoft Access ne peut pas actualiser la table de données dans le cadre d'une commande qui exécute déjà d'autres opérations.

Voir aussi

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft