Partager via


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 pour 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.

    Notes

    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 to Data Concurrency in 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.

    Notes

    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.

    Notes

    Vous pouvez ajouter plusieurs instructions à la propriété CommandText d'un objet de commande d'un adaptateur en délimitant les 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.

    Notes

    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

Concepts

Nouveautés du développement d'applications de données

Liaison de contrôles Windows Forms à des données dans Visual Studio

Liaison de contrôles à des données dans Visual Studio

Autres ressources

Procédures pas à pas relatives aux données

Connexion aux données dans Visual Studio

Préparation de votre application pour recevoir des données

Extraction de données dans votre application

Modification des données dans votre application

Validation des données

Enregistrement des données