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

Composants VCL Delphi Discussion :

TUIBQuery, SELECT, Paramètres


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 182
    Par défaut TUIBQuery, SELECT, Paramètres
    Bonjour,

    J'utilise des TUIBQuery pour me connecter a firebird suite à une possible migration depuis Interbase.
    Mais j'ai des problèmes en utilisant des paramètres dans une requete SELECT ( pour info, LOADARTICLE est une procédure stockée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            qry.close;
            qry.sql.Clear;
            qry.sql.Add('select lar.karticle,lar.typecode,lar.typeden,article.remisable,article.nut,article.SvU,article.famille,article.atype,denomination,code,article.u_vente as CODE_UNITE,');
            qry.sql.Add('unite.Abrege as UNITE');
            qry.sql.Add(',lab_produit.densite, lab_produit.lyophylisat,lab_produit.talon,lab_produit.SV,lab_produit.dangereux,lab_produit.doseprisea,lab_produit.conservationtps, lab_produit.conservationh,');
           qry.sql.Add(' lab_produit.doseprisee,lab_produit.doseprisen,lab_produit.doseprisea24,lab_produit.doseprisee24,lab_produit.doseprisen24,lab_produit.u_doseN,lab_produit.u_doseE,lab_produit.u_doseA,lab_produit.payall,lab_produit.contenance ');
            qry.sql.Add(' from LOADARTICLE(:part_list,:recette,:MASK,1 ) lar JOIN article on kArticle = article.cle and article.etat = 2200  JOIN unite on article.U_VENTE = unite.cle ');
            qry.sql.Add(' LEFT OUTER JOIN lab_produit on lab_produit.cle = karticle ROWS 50');
            qry.Params.ByNameAsInteger['part_list'] := 1404;
            qry.Params.ByNameAsInteger['recette'] := 115;
            qry.Params.ByNameAsString['MASK'] := '%';
            qry.open;
    Cette requete ne me retourne aucun résultat, alors que si je mets les valeurs directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            qry.close;
            qry.sql.Clear;
            qry.sql.Add('select lar.karticle,lar.typecode,lar.typeden,article.remisable,article.nut,article.SvU,article.famille,article.atype,denomination,code,article.u_vente as CODE_UNITE,');
            qry.sql.Add('unite.Abrege as UNITE');
            qry.sql.Add(',lab_produit.densite, lab_produit.lyophylisat,lab_produit.talon,lab_produit.SV,lab_produit.dangereux,lab_produit.doseprisea,lab_produit.conservationtps, lab_produit.conservationh,');
           qry.sql.Add(' lab_produit.doseprisee,lab_produit.doseprisen,lab_produit.doseprisea24,lab_produit.doseprisee24,lab_produit.doseprisen24,lab_produit.u_doseN,lab_produit.u_doseE,lab_produit.u_doseA,lab_produit.payall,lab_produit.contenance ');
            qry.sql.Add(' from LOADARTICLE(1404,115,'%',1 ) lar JOIN article on kArticle = article.cle and article.etat = 2200  JOIN unite on article.U_VENTE = unite.cle ');
            qry.sql.Add(' LEFT OUTER JOIN lab_produit on lab_produit.cle = karticle ROWS 50');
            
            qry.open;
    Là j'ai bien mes résultats ! Qu'est-ce que je fais mal ? (et merci d'éviter de débattre sur la construction de ma requête, car le problème n'est pas là)
    merci d'avance !

  2. #2
    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
    Citation Envoyé par loukoum82 Voir le message
    et merci d'éviter de débattre sur la construction de ma requête, car le problème n'est pas là
    Et pourtant, tu ne nous facilites pas la tâche, car ta requête est difficilement lisible.

    Mais pour répondre à ta question, essaye ceci car j'ai l'impression que tes paramètres sont mal alimentés.
    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
    19
    20
    21
    22
    23
    24
    25
    26
    with Qry, SQL do
    begin
      Close;
      Clear;
      Add('SELECT FIRST 50');
        Add('LAR.karticle, LAR.typecode, LAR.typeden,');
        Add('A.remisable, A.nut, A.SvU, A.famille, A.atype,');
        Add('A.denomination, A.code, A.u_vente AS CODE_UNITE,');
        Add('U.Abrege as UNITE,');
        Add('LP.densite, LP.lyophylisat, LP.talon, LP.SV, LP.dangereux,');
        Add('LP.doseprisea, LP.conservationtps, LP.conservationh,');
        Add('LP.doseprisee, LP.doseprisen, LP.doseprisea24, LP.doseprisee24,');
        Add('LP.doseprisen24, LP.u_doseN, LP.u_doseE, LP.u_doseA, LP.payall,');
        Add('LP.contenance');
      Add('FROM');
        Add('LOADARTICLE(:PART_LIST, :RECETTE, :MASK, 1) LAR');
        Add('JOIN ARTICLE A ON LAR.kArticle = A.cle and A.etat = 2200');
        Add('JOIN UNITE U on A.U_VENTE = U.cle');
        Add('LEFT OUTER JOIN lab_produit LP on LP.cle = LAR.karticle');
     
      Params.ByNameAsInteger['PART_LIST'] := 1404;
      Params.ByNameAsInteger['RECETTE'] := 115;
      Params.ByNameAsString['MASK'] := '%';
     
      Open;
    end;
    @+ Claudius

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 182
    Par défaut
    Si j'essaie de comprendre les différences entre ton code et le mien, cela réside dans le fait que tu utilise des majuscules pour les noms des paramètres ?

    ...
    Et le fait que j'ai oublié de mettre "Params." pour les deux derniers paramètres, mais ça c'est une erreur de recopiage....

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    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 236
    Par défaut
    Ne connaissant pas les UIBQuery je ne sais pas si la propriété ParamCheck existe mais en général quand je créé une requête dynmiquement je l'utilise toujours juste avant le remplissage des paramètres.
    Modérateur Delphi

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

  5. #5
    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
    @Rayek.

    Ca aurait pu être ça, mais point de ParamCheck avec le UIB.

    @+

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 182
    Par défaut
    N'empêche que j'ai toujours pas de solution... Personne a une idée ?

Discussions similaires

  1. Select Paramétré des champs ?
    Par sayfouche dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/07/2012, 12h48
  2. [XSLT] Apply-templates avec select paramétré par un attribut
    Par datrinite dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 26/02/2010, 11h34
  3. Faire un select paramêtré
    Par Herlece dans le forum PL/SQL
    Réponses: 2
    Dernier message: 15/10/2008, 00h51
  4. [Spring Portlets] select paramétré+affichage jsp
    Par myriam818 dans le forum Spring Web
    Réponses: 0
    Dernier message: 06/12/2007, 17h42
  5. Réponses: 2
    Dernier message: 23/07/2006, 15h07

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