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 :

Utilisation des TQuery


Sujet :

Bases de données Delphi

  1. #1
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Par défaut Utilisation des TQuery
    Je suis en train de réaliser une étude détaillée en vue de développer une application de gestion en Delphi + BDD. En terme de programmation, je prévois un module avec plusieurs TTable et TQuery. Classique !!

    Mes questions portent sur la « bonne pratique » d’utilisation des TQuery sachant, qu’à priori, un programme « pro » doit être réalisé via des requêtes (lecture, création, modification). Ce programme devra être le plus structuré possible.

    Grosso modo, mon problème est de savoir quel TQuery fait quoi !!

    - Faut-il dédié un TQuery à une utilisation particulière ? Par exemple à une fonction quelconque interrogeant une ou plusieurs tables devra-t-elle avoir son TQuery ?

    - Peut-on interroger avec 2 TQuery les mêmes tables en même temps ? Ex : édition d’un état avec un TQuery utilisant une requête complexe sur plusieurs tables, et création/modification/màj sur une table

    - Est-ce aberrant d’imbriquer des TQuery dans des lectures en boucle ? En tout cas, ça doit sans doute l’être en terme de temps de réponse…

    - Existe-t-il des règles générales d’utilisation et de bonnes pratiques ?

    Olivier

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Par défaut
    Tu peux déjà aller voir dans les sources à cet endroit. Tu y trouveras un exemple d'utilisation des Query. Les tois exemples sont en fait un exercice de style faisant intervenir successivement des TADOQuery puis des TADOQuery et enfin des TClientDataSet.

    Cordialement

  3. #3
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Par défaut
    L'utilisation proprement dite d'un TQuery ne me pose pas de problème. Mon problème vient plutôt de l'utilisation de plusieur TQuery au niveau général d'un programme.

    Comment savoir si je dois en utiliser un seul ou plusieurs ?

    Qu'est-ce qui justifie l'utilisation d'un TQuery en plus ??

  4. #4
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Par défaut
    Bonjour,

    Citation Envoyé par Anddi
    Mon problème vient plutôt de l'utilisation de plusieur TQuery au niveau général d'un programme.
    C'est justement un petit peu le but des sources que je t'ai donné. Si tu prends un peu de temps pour les étudier tu y découvriras l'unité BDESqlExecute dans le premier des sources. Dans cette unité du trouveras des méthodes permettant de gérer des TQuery de façon dynamique. En effet si ton projet dispose d'un très grand nombre de tables, il ne faut pas créer autant de TQuery qu'il y a de tables car ton applicatif sera alors très gourmand en ressources.

    Afin de contourner ce problème tu trouveras par exemple, dans les sources :

    1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function execQuery(_dataBase: TDataBase; textSql: string):boolean;
    Qui permet d'exeucuter sur une base _dataBase une requête SQL quelconque que tu passes par la variable textSql. Cette fonction te renvoie Ture si la requête aboutit.

    2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function getQueryResult(_dataBase: TDataBase; textSql: string):TQuery;
    Qui te permet de récupérer un ensembles de résultats sous forme d'un TQuery. Tu passes à cette fonction le nom de ta base dans _dataBase, puis le texte de la requête dans la variable textSql.
    Cette fonction te permettra de réaliser sur le TQuery différentes opérations et notamment l'affichage dans une dbGrid.
    Pour utiliser cette fonction tu crées dynamiquement un TQuery, tu utilises ensuite la fonction qui renverra l'ensemble de résultats dans le TQuery créé précedemment, puis dès que tu n'en a plus besoin tu le libères avec un Free. Cela permet de gérer au mieu, les ressources dans ton application.

    Tu y trouveras encore d'autres procédure et fonctions intéressantes.
    J'utilise cette technique pour des applicatifs base de données pour lesquels le MCD comporte jusqu'à plus de 200 tables.

    Bon code
    Cordialement

  5. #5
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Par défaut
    Excellent ! Merci !!

Discussions similaires

  1. Règles d'utilisation des forums C
    Par Franck.H dans le forum C
    Réponses: 3
    Dernier message: 26/01/2008, 17h35
  2. [CR8.5] Utilisation des codes barre
    Par Robert dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 20/01/2005, 16h13
  3. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 18h24
  4. [Crystal Report] Utilisation des vues de sql serveur
    Par Olivierakadev dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 15/11/2002, 17h44
  5. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01

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