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 :

Un Seul TQuery pour plusieurs requêtes


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Par défaut Un Seul TQuery pour plusieurs requêtes
    Bonjour à tous et à toutes

    Voilà, pour les besoins de mon application j'aurais besoin d'implémenter la même structure de requête sur des tables différentes....
    Le code est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TFAbsence.abledesAbsents3Click(Sender: TObject);
    begin
    datamodule5.Qarchiv.SQL.Clear;
    datamodule5.Qarchiv.SQL.ADD('INSERT INTO "ArchAbs.DBF"(NUM, MATRICULE,PUCE,NOM,PRENOM,FONCTION,DEPT,DATES)');
    datamodule5.Qarchiv.SQL.ADD('SELECT NUM,MATRICULE,PUCE,NOM,PRENOM,FONCTION,DEPT,DATES FROM "TempAbs.DBF"');
    datamodule5.Qarchiv.ExecSQL;
    end;
    pour les tables: TempAbs.DBF et ArchAbs.DBF

    Maintenant, il faudrait la même chose pour les 2 autres tables différentes!

    Pourrais-je utiliser le même Query, dans un code semblable (En changeant biensur les noms des tables), le code serait associé à l'événement onclick d'un autre bouton: Archive2

    Merci +++

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Tu peux très bien te servir du même TQuery pour faire tes requêtes SQL. Le tout, c'est de bien vider le contenu du TQuery donc comme tu le fais via un Clear ...

    Donc si je comprends bien, tu auras un second bouton qui va contenir la même requête mais pour une table différente ...

    A+

    [EDIT]
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TFAbsence.Archive2Click(Sender: TObject);
    begin
    datamodule5.Qarchiv.SQL.Clear;
    datamodule5.Qarchiv.SQL.ADD('INSERT INTO "AutreTable1.DBF"(NUM, MATRICULE,PUCE,NOM,PRENOM,FONCTION,DEPT,DATES)');
    datamodule5.Qarchiv.SQL.ADD('SELECT NUM,MATRICULE,PUCE,NOM,PRENOM,FONCTION,DEPT,DATES FROM "AutreTable2.DBF"');
    datamodule5.Qarchiv.ExecSQL;
    end;

  3. #3
    Membre éprouvé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Par défaut
    normalement oui, juste à aprés datamodule5.Qarchiv.ExecSQL;
    tu refait un autre SQL.Clear et tu met chaine SQL

  4. #4
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Tu peux te faire une petite fonction qui va construire ta requête avec les noms de tables qui vont bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    function SetSQLText(const AInto, AFrom: string): string;
    const
      SQL = 'INSERT INTO "%s"(NUM, MATRICULE,PUCE,NOM,PRENOM,FONCTION,DEPT,DATES) ' +
        'SELECT NUM,MATRICULE,PUCE,NOM,PRENOM,FONCTION,DEPT,DATES FROM "%s"');
    begin
      result := Format(SQL, [AInto, AFrom]);
    end;
     
     
      // ...
      with DataModule5.Qarchiv do
      begin
        SQL.Text := SetSQLText('ArchAbs.DBF', 'TempAbs.DBF');
        ExecSQL;
        Close;
      end;
      // ...
    @+ Claudius

  5. #5
    Membre éclairé Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Par défaut
    Ok, Merci ++

    La question ne devrait plus se poser !!!

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Par défaut Fermer la requête
    Salut
    Trés bonne réponse de Cl@udius , en faite , je veux juste ajouter pour des raisons de sécurités de fermer la requête par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    datamodule5.Qarchiv.Close;
    Ensuite de mettre sa datasource à Nil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    datamodule5.Qarchiv.Datasource := nil;
    Bon , c'est ce que j'ai à ajouter , j'espére que ça va optimiser ton code
    Bonne journée

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/07/2007, 13h45
  2. Est-ce possible d'utiliser un seul bd pour plusieurs site?
    Par Rajhonson dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 21/11/2006, 07h40
  3. un seul résultat pour plusieurs requètes
    Par MmoulinexX dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/11/2006, 15h38
  4. Réponses: 7
    Dernier message: 01/02/2006, 15h49
  5. [C#] Une seule méthode pour plusieurs composants
    Par niPrM dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/06/2004, 14h41

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