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 :

requeteur delphi Access


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut requeteur delphi Access
    Bonjour,

    Existe-t-il des composants delphi qui permettent d'implémenter un requêteur graphique (un peu a la manière d'Access quand on veut créer une requete en mode graphique)?

    Je voudrais permettre à l'utilisateur de choisir les tables, les champs qu'ils veut, peut etre quelques conditions where, des possibilités de Count, etc...

    Il me semble qu'un tel composant existe mais je ne me rappelle plus de son nom.

    Merci.

  2. #2
    Membre habitué Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Points : 157
    Points
    157
    Par défaut
    Citation Envoyé par tomy29
    Bonjour,

    Existe-t-il des composants delphi qui permettent d'implémenter un requêteur graphique (un peu a la manière d'Access quand on veut créer une requete en mode graphique)?

    Je voudrais permettre à l'utilisateur de choisir les tables, les champs qu'ils veut, peut etre quelques conditions where, des possibilités de Count, etc...

    Il me semble qu'un tel composant existe mais je ne me rappelle plus de son nom.

    Merci.
    Salut
    Alors si vous utilisez TQuery...... vous pouvez utiliser le SQL builder avec le popmenu du TQuery il va vous aider un peu...........

  3. #3
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Tu as ça : http://fast-report.com/upload/iblock...687c8f10b8.gif
    C'est payant mais pas très cher.

  4. #4
    Membre expérimenté

    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
    Points : 1 561
    Points
    1 561
    Par défaut
    En complément de la réponse de philnext, voici le lien ver le site officiel de query Builder.

    J'utilise ce composant et je te le recommande.
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Citation Envoyé par Pascal Jankowski
    En complément de la réponse de philnext, voici le lien ver le site officiel de query Builder.

    J'utilise ce composant et je te le recommande.
    Merci.
    Comment fait on pour relier ce composant à une base? il n'y a aucune propriété Database ou quoique ce soit y ressemblant?

  6. #6
    Membre expérimenté

    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
    Points : 1 561
    Points
    1 561
    Par défaut
    Bonjour,

    Tu dois dans un tout premier temps définir ta façon d'accéder à ta base de données. Par exemple, si tu désires accéder à ta base via ADO, tu dois alors déposer sur ta TForm un composant TADOConnexion. Dès lors, tu pourras placer un composant TacADOMetadataProvider. Ce dernier composant dispose d'une propriété "Connection". Via l'inspecteur d'objet, tu lies cette propriété au TADOConnexion.

    Place ensuite un composant visuel TacQueryBuilder sur ta TForm. Toujours dans l'inspecteur d'objet, repère alors la propriété "MetadataProvider" à laquelle tu renseigneras le nom du composant TacADOMetadataProvider.

    Voir dans le source (unité acQBBase.pas) la propriété:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TacQueryBuilder = class(TWinControl, IacSyntaxProviderPropsChanged)
    ...
    published
    ...
    property MetadataProvider: TacBaseMetadataProvider
          read fMetadataProvider write SetMetadataProvider;
    Tout cela aura pour effet de lier ton TacQueryBuilder à ta base de données.

    Selon le type de connexion envisagé avec ton SGBD favori :
    Citation Envoyé par QueryBuilder
    - TacBDEMetadataProvider à lier avec un Tdatabase (BDE)
    - TacQBdbExMataDataProvider à lier avec un TSQLDataSet (Dbexpress)
    - TacQIBBexMatadataProvider à lier avec un TIBDatabase. (Interbase)
    Pour compléter la mise en route du composant TacQueryBuilder, il faudra ensuite choisir un fournisseur de syntaxe.
    Par exemple, si tu te connectes à SQLServer, tu déposes sur ta fiche un composant TacMSSQLSyntaxProvider. Te te rends ensuite dans l'inspecteur d'objet pour le composant TacQueryBuilder et tu recherches la propriété SyntaxProvider que tu relies au composant TacMSSQLSyntaxProvider.
    Tu peux remarquer qu'il existe de nombreux fournisseurs de syntaxe dans cette suite de composants.

    Voir dans le source (unité acQBBase.pas) la propriété:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TacQueryBuilder = class(TWinControl, IacSyntaxProviderPropsChanged)
    ...
    published
    ...
    property SyntaxProvider: TacBaseSyntaxProvider
          read fSyntaxProvider write SetSyntaxProvider;
    Tu peux maintenant, de façon optionnelle, placer un composant TacSQLBuilderPlainText sur ta TForm afin de récupérer le script SQL de ta requête en cours de construction. Dès que tu places ce composant tu vas dans l'inspecteur d'objet puis tu recherches la propriété QueryBuilder que tu lies à ton TacQueryBuilder.
    Ensuite il ne te reste qu'à coder l'événement OnSQLUpdated du composant TacSQLBuilderPlainText.

    par exemple si ta Tform dispose d'un composant TMemo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm1.acSQLBuilderPlainTextSQLUpdated(
      Sender: TObject);
    begin
      memo1.Lines.BeginUpdate
      try
        memo1.Text := acSQLBuilderPlainText1.SQL;
      finally
        memo1.Lines.EndUpdate
      end;
    end;
    Je te conseille d'utiliser non pas un TMemo, mais plutot un composant Synedit. Ce composant te permet de mettre en place la coloration syntaxique ainsi que la fonction de complétion de texte. Cela te donnera un éditeur de script SQL très pro.

    Pour finir, je te conseille d'ajouter une fonction qui permet de faire du reverse ingeniering, c'est à dire reconstruire visuellement ta requête à partir d'un script SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.reverse(Sender: TObject);
    begin
      acQueryBuilder1.BeginUpdate;
      try
        acQueryBuilder1.SQL := SynEdit1.Text; //ou Memo1.Text
      finally
        acQueryBuilder1.EndUpdate;
      end;
    end;
    En espérant te permettre de démarrer avec la suite de composants QueryBuilder.
    Cordialement
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Merci pour ces infos.
    J'ai installé la version Demo téléchargeable sur leur site, mais dans la palette de composants je n'ai pas decomposant TacADOMetadataProvider. Juste des composants de type TMSSQLQueryBuilder(TMySQLQueryBuilder, TDbiQueryBuilder, TSQLQueryBuilder, etc. etc.), et il n'y a pas de propriété Connection pour ce composant.
    Il n'y a aucun composant Provider.

  8. #8
    Membre expérimenté

    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
    Points : 1 561
    Points
    1 561
    Par défaut
    On ne parle pas des mêmes composants:

    Tu les a chargé à partir de ce site ? Ce sont les SQL Manager qui n'ont rien à voir avec la suite de composants d'active query builder.

    Effectivement, l'utilisation n'est pas du tout celle expliquée ci-dessus.

    Par contre tu peux tenter de la mettre en oeuvre en installant la version démo d'active query builder que tu peux trouver à cet endroit.

    Par contre la version de démo est limitée de la façon suivante

    Cordialement
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Merci,

    bon ben comme ca c'est résolu, ca marche pas avec Access en démo. Ca va etre pratique pour dire a ma MOA si c'est un bon produit.

  10. #10
    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 tomy29
    Merci,

    bon ben comme ca c'est résolu, ca marche pas avec Access en démo. Ca va etre pratique pour dire a ma MOA si c'est un bon produit.
    Bien sur que si ca focntionne avec ACCESS en mode démo, c'est juste que ca ne fonctionne qu'avec le SQL standard (SQL92) et pas avec le SQL étendue de chaque type de base de données
    Modérateur Delphi

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

  11. #11
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Ah ok, Merci.

    Donc la version Demo n'a rien a voir avec Delphi alors. C'est une application a part entière. On ne peut pas l'implémenter dans une appli Delphi.

    Juste une question : je suppose que la version Demo n'est pas limité dans le temps? Ses limites concernent juste les fonctionnalités.

  12. #12
    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
    Lis ce que le site explique.
    Je vais pas essayer de comprendre le fonctionnement de composants qui ne me servent pas à ta place
    Modérateur Delphi

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

  13. #13
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Citation Envoyé par Pascal Jankowski
    Bonjour,

    Tu dois dans un tout premier temps définir ta façon d'accéder à ta base de données. Par exemple, si tu désires accéder à ta base via ADO, tu dois alors déposer sur ta TForm un composant TADOConnexion. Dès lors, tu pourras placer un composant TacADOMetadataProvider. Ce dernier composant dispose d'une propriété "Connection". Via l'inspecteur d'objet, tu lies cette propriété au TADOConnexion.

    Place ensuite un composant visuel TacQueryBuilder sur ta TForm. Toujours dans l'inspecteur d'objet, repère alors la propriété "MetadataProvider" à laquelle tu renseigneras le nom du composant TacADOMetadataProvider.

    Voir dans le source (unité acQBBase.pas) la propriété:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TacQueryBuilder = class(TWinControl, IacSyntaxProviderPropsChanged)
    ...
    published
    ...
    property MetadataProvider: TacBaseMetadataProvider
          read fMetadataProvider write SetMetadataProvider;
    Tout cela aura pour effet de lier ton TacQueryBuilder à ta base de données.

    Selon le type de connexion envisagé avec ton SGBD favori :

    Pour compléter la mise en route du composant TacQueryBuilder, il faudra ensuite choisir un fournisseur de syntaxe.
    Par exemple, si tu te connectes à SQLServer, tu déposes sur ta fiche un composant TacMSSQLSyntaxProvider. Te te rends ensuite dans l'inspecteur d'objet pour le composant TacQueryBuilder et tu recherches la propriété SyntaxProvider que tu relies au composant TacMSSQLSyntaxProvider.
    Tu peux remarquer qu'il existe de nombreux fournisseurs de syntaxe dans cette suite de composants.

    Voir dans le source (unité acQBBase.pas) la propriété:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TacQueryBuilder = class(TWinControl, IacSyntaxProviderPropsChanged)
    ...
    published
    ...
    property SyntaxProvider: TacBaseSyntaxProvider
          read fSyntaxProvider write SetSyntaxProvider;
    Tu peux maintenant, de façon optionnelle, placer un composant TacSQLBuilderPlainText sur ta TForm afin de récupérer le script SQL de ta requête en cours de construction. Dès que tu places ce composant tu vas dans l'inspecteur d'objet puis tu recherches la propriété QueryBuilder que tu lies à ton TacQueryBuilder.
    Ensuite il ne te reste qu'à coder l'événement OnSQLUpdated du composant TacSQLBuilderPlainText.

    par exemple si ta Tform dispose d'un composant TMemo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm1.acSQLBuilderPlainTextSQLUpdated(
      Sender: TObject);
    begin
      memo1.Lines.BeginUpdate
      try
        memo1.Text := acSQLBuilderPlainText1.SQL;
      finally
        memo1.Lines.EndUpdate
      end;
    end;
    Je te conseille d'utiliser non pas un TMemo, mais plutot un composant Synedit. Ce composant te permet de mettre en place la coloration syntaxique ainsi que la fonction de complétion de texte. Cela te donnera un éditeur de script SQL très pro.

    Pour finir, je te conseille d'ajouter une fonction qui permet de faire du reverse ingeniering, c'est à dire reconstruire visuellement ta requête à partir d'un script SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.reverse(Sender: TObject);
    begin
      acQueryBuilder1.BeginUpdate;
      try
        acQueryBuilder1.SQL := SynEdit1.Text; //ou Memo1.Text
      finally
        acQueryBuilder1.EndUpdate;
      end;
    end;
    En espérant te permettre de démarrer avec la suite de composants QueryBuilder.
    Cordialement
    J'ai téléchargé la version Demo VCL de Query Builder. Mais quand je veux ouvrir leur projet demo il me manque TacADOMetadataProvider , je n'arrive pas à le trouver. Peux tu me renseigner sur ce point là?
    Merci.

  14. #14
    Membre expérimenté

    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
    Points : 1 561
    Points
    1 561
    Par défaut
    http://www.activequerybuilder.com/fe....html?show=vcl

    Tu comprendras pourquoi.


    Citation Envoyé par "Tomy29"
    Ca va etre pratique pour dire a ma MOA si c'est un bon produit.

    Par contre tu peux tenter une connexion via BDE avec la version d'évaluation des composants et comme cela tu pourras déterminer si ces composants te conviennent et ainsi acquérir ou non la version complète?


    Pour info:
    Citation Envoyé par Pascal Jankowski
    - TacBDEMetadataProvider à lier avec un Tdatabase (BDE)
    Cordialement
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  15. #15
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Merci.

    Le problème c'est que je n'ai pas de TacBDEMetadataProvider pour tenter une connection BDE. Je n'ai aucune metadaprovider dans la version Demo a part :TacEventMetadataProvider.

    Donc j'ai peur que pour pouvoir tester Querybuilder sous delphi, il faut l'acheter.

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    Bonjour bonjour!!
    Je viens mettre mon grain de sel!
    Petite question :J'utilise une connexion ODBC pour gerer mes connexions a mes bases de données.

    Ce composant est il compatible? Quelqu'un aurais t il des sources disponibles ou il utilise ce composant?

    merci!

Discussions similaires

  1. Delphi, access et ftFloat
    Par Adrian Miatlev dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/09/2005, 15h57
  2. Depuis EDI DELPHI : Access Violation
    Par powerlog dans le forum EDI
    Réponses: 1
    Dernier message: 03/08/2005, 16h59
  3. Problem de Date (Delphi/Access)
    Par mobeida dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/04/2005, 18h14
  4. Delphi-Access
    Par mobeida dans le forum Bases de données
    Réponses: 1
    Dernier message: 05/01/2005, 11h43
  5. [Delphi+Access] Pb affichage caractère spéciaux
    Par fred64 dans le forum Bases de données
    Réponses: 6
    Dernier message: 02/06/2004, 10h53

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