IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Mise à jour avec les datasetproviders


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Mise à jour avec les datasetproviders
    Bonjour,

    Je voudrais savoir si quelqu'un est arrivé à mettre à jour une table à partir d'un datasetprovider qui stocke les enregistrements d'un requête avec jointure externe. Je m'explique :
    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Select Champs1,Champs2,... from Table A
    Left Join Table 2 on (A.Champs1=B.Champs1)
    Je voudrais donc mettre à jour ma table1 à travers le datasetprovider. mais ça ne marche pas.
    Quelqu'un peut-il m'aider??

    Merci
    [Balises CODE rajoutées par Pedro. Merci d'y penser à l'avenir]
    SONIA

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Andorre

    Informations forums :
    Inscription : Juin 2004
    Messages : 219
    Points : 241
    Points
    241
    Par défaut
    Salut

    Dans le DataSet (TIBDataSet,........) tu dois aller aux champs persistents et mettre la property ProviderFlags.pfInUpdate des champs de la deuxième table a false

    A+

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Aide Delphi 2005
    Application des mises à jour à des ensembles de données représentant plusieurs tables

    Quand un fournisseur d'ensemble de données génère des instructions SQL qui appliquent directement les mises à jour dans un serveur de bases de données, il lui faut le nom de la table de la base de données qui contient les enregistrements. Cela peut être automatiquement géré pour de nombreux ensembles de données tels que les ensembles de données de type table ou les composants TQuery "dynamiques". Toutefois, les mises à jour automatiques représentent un problème dans le cas où le fournisseur doit appliquer les mises à jour aux données sous-jacentes à une procédure stockée renvoyant un ensemble de résultats ou à une requête multitable. Il n'est pas évident de déterminer le nom de la table dans laquelle appliquer les mises à jour.

    Si la requête ou procédure stockée est un ensemble de données BDE (TQuery ou TStoredProc) et qu'elle possède un objet mise à jour associé, le fournisseur utilise cet objet. Toutefois, en l'absence d'objet mise à jour, vous devez spécifier le nom de la table par code dans un gestionnaire d'événement OnGetTableName . Quand ce gestionnaire d'événement a indiqué un nom de table, le fournisseur peut générer les instructions SQL appropriées pour appliquer les mises à jour.

    La solution consistant à fournir le nom de la table ne fonctionne que si les mises à jour doivent être appliquées à une seule table de base de données (s'il suffit de modifier les enregistrements d'une seule table). Si la mise à jour nécessite la modification de plusieurs tables de la base de données, vous devez explicitement appliquer les mises à jour en utilisant l'événement BeforeUpdateRecord du fournisseur. Quand ce gestionnaire d'événement a appliqué une mise à jour, vous devez initialiser son paramètre Applied à True afin que le fournisseur ne génère pas une erreur.

    Remarque: Si le fournisseur est associé à un ensemble de données BDE, vous pouvez utiliser un objet mise à jour dans le gestionnaire d'événement BeforeUpdateRecord pour appliquer les mises à jour à l'aide d'instructions SQL personnalisées.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/06/2012, 14h27
  2. Réponses: 6
    Dernier message: 15/08/2008, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo