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

C++Builder Discussion :

[TQuery] Modification du résultat d'un TQuery trié. [FAQ]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 31
    Par défaut [TQuery] Modification du résultat d'un TQuery trié.
    Builder 6, Windows XP, DBase.

    Bonjour,

    J'ai une requête dans un TQuery du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM MaTable
    ORDER BY MonCritere
    Je mets RequestLive a true, mais il m'est impossible de modifier le résultat de cette TQuery (a cause du Ordey by).

    J'aimerais savoir s'il existe une méthode ou une astuce pour réussir a le faire. Comme je l'ai indiqué je travaille sur du Dbase dans une table n'ayant pas de clef ce qui n'arrange rien.

    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 31
    Par défaut
    Bon et bien j'ai trouvé.

    Au cas ou ça intéresserait quelqu'un je donne la solution :
    • On ne peut pas mettre a jour directement le résultat d'un TQuery trié. (chose possible par exemple avec un TADOQuery)
    • Il faut donc utiliser l'objet TUPDateSql que l'on associe au TQuery (après avoir mis son attribut CacherUpdate a true). Il faut définir UpdateSql avec un syntaxe du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Update Matable
    set
      Champs1 = :Champs1,
      Champs2 = :Champs2
    where
      Champs1 = :Champs1 and
      Champs2 = :Champs2
    Dans mon cas (pas de clef primaire) je suis obligé de mettre tous mes champs dans la clause Where, ce qui en plus d'être moche est consommateur en temps de calcul. (mais quelle idée de ne pas avoir de clef primaire )

    Ensuite la mise ajour se fait de la même manière que si l'objet TUPDateSql n'existait pas, ce qui est bien pratique !

    exemple :
    pMonDataSet->Fields->FieldByName("MonChamps")->Value = 0;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Résultat d'un TQuery
    Par janjannaj dans le forum Bases de données
    Réponses: 7
    Dernier message: 31/03/2011, 08h20
  2. [Tableaux] Renvoyer le résultat d'un array trié?
    Par jack0five dans le forum Langage
    Réponses: 4
    Dernier message: 19/06/2008, 11h59
  3. [VBA Excel+Word] modification du résultat du publipostage
    Par Xiombarg2911 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/05/2008, 10h51
  4. [MySQL] résultats dans un tableau + tri en colonne
    Par Graph-Site dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/11/2007, 23h00
  5. Récuprere le résultat d'une Tquery
    Par warning dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/07/2007, 21h49

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