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

Pascal Discussion :

Effectuer une requête SQL en Pascal


Sujet :

Pascal

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 82
    Points : 56
    Points
    56
    Par défaut Effectuer une requête SQL en Pascal
    Salut à tous,

    Mon problème du jour :
    je souhaiterais transformer ma requête suivante, qui est en SQL, en version Pascal de type "Begin machin chose"

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select count(distinct(RT.Caption)) from TREMISEBANCAIRE RB
    inner join TORDREPAIEMENT OP on OP.oidRemiseBancaire = RB.oid
    inner join TROLETIERS RT on RT.oid = OP.oidroleTiers
    where RB.estEnvoye = 1 and lettreEdite like '%1899%' group by RB.oid

    Merci d'avance pour vos réponses toujours aussi rapides et précises

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Jua,

    Il faut créer une chaine de caractères contenant la requête, et l'envoyer à ta base de données.
    Il existe pas mal d'outils pour faire ça.
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 82
    Points : 56
    Points
    56
    Par défaut
    euh ... pour une fois que ca m'aide pas ... mais alors pas du tout

    Personne n'a mieux à me proposer comme réponse ?

  4. #4
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour

    J'espère que tu ne pensais pas traduire cette requête SQL en Pascal
    Une requête SQL reste une requête SQL c'est pourquoi droggo écrivait de créer une chaîne contenant la requête pour effectuer le traitement que tu veux.
    Et donc tu as le choix en passant par Lazarus par exemple; ça nécessite comme dans tous les langages que tu ouvres une connexion à ta base et ensuite d'effectuer la requête.
    Un petit tour vers les WIKI officiel?

    Après faut voir quel type de base de données tu utilises.
    Quel compilateur utilises-tu?

    Cordialement
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 82
    Points : 56
    Points
    56
    Par défaut
    Bien évidemment que je ne voulais pas faire cette même requête SQL sous Pascal (ou qui que ce soit d'autres d'ailleurs ).

    Bref, on va essayer de faire plus simple et de poser le pbm autrement.

    Peu importe le compilateur (vu qu'en plus je saurais pas vous dire lequel c'est, étant donné que c'est un truc interne à mon logiciel sur lequel je bosse)
    Bref 2ème ...

    On va partir du postulat suivant : j'ai une table T1 qui n'a d'existence qu'à partir du moment où il y a une table T2 qui l'alimente. Donc en gros, si j'ai une ligne dans T1, j'ai forcément une ou plusieurs lignes de T2 associées, mais la réciproque n'est pas vraie.
    Dans les lignes de T2, j'ai un champ C qui vient du table T3.

    Ce que je voudrais donc faire, c'est pouvoir compter dans une "requête" Pascal de type "begin ... end", le nombre distinct de champ C pour une ligne de T1.

    Est-ce plus clair ???

    Merci à vous en tout cas pour vos réponses

  6. #6
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour
    Citation Envoyé par zpliz Voir le message
    Ce que je voudrais donc faire, c'est pouvoir compter dans une "requête" Pascal de type "begin ... end", le nombre distinct de champ C pour une ligne de T1.
    Est-ce plus clair ???
    Merci à vous en tout cas pour vos réponses
    Ceci est un problème purement SQL et n'a rien à voir avec Pascal. En fait là où tu te trompes c'est de croire que qu'un bloc 'begin/end' en Pascal constitue une équivalence à une requête SQL. Certes c'est une requête au compilateur mais pour exécuter une requête SQL il faut interroger le compilateur qui saura qu'il y a une demande vers une Base de Données

    Citation Envoyé par zpliz Voir le message
    On va partir du postulat suivant : j'ai une table T1 qui n'a d'existence qu'à partir du moment où il y a une table T2 qui l'alimente. Donc en gros, si j'ai une ligne dans T1, j'ai forcément une ou plusieurs lignes de T2 associées, mais la réciproque n'est pas vraie.
    Dans les lignes de T2, j'ai un champ C qui vient du table T3.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT count(DISTINCT(RT.Caption)) FROM TREMISEBANCAIRE RB
    INNER JOIN TORDREPAIEMENT OP ON OP.oidRemiseBancaire = RB.oid
    INNER JOIN TROLETIERS RT ON RT.oid = OP.oidroleTiers
    WHERE RB.estEnvoye = 1 AND lettreEdite LIKE '%1899%' GROUP BY RB.oid
    Je ne connais pas la structure de tes tables, mais cette requête ne fait pas ce que tu veux faire?
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2002
    Messages : 27
    Points : 30
    Points
    30
    Par défaut Probleme Requete
    Bonjour ,
    je pense que le problème viens de ta requête , essaye d'utiliser des LEFT JOIN au lieu des INNER JOIN (vu que tu n'a pas nécessairement une correspondance entre T2 et T1 ).

Discussions similaires

  1. [SQL Serveur] Effectuer une requête SQL en Perl
    Par benji1000 dans le forum SGBD
    Réponses: 7
    Dernier message: 19/12/2012, 16h46
  2. [SQL server CE] Effectuée une requête
    Par afrodje dans le forum VB.NET
    Réponses: 0
    Dernier message: 03/04/2009, 11h32
  3. Langage pour effectuer une requête SQL.
    Par slake13 dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 19/11/2008, 13h22
  4. Réponses: 5
    Dernier message: 11/09/2007, 13h17

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