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

Connexion aux bases de données Firebird Discussion :

Verification de code pour IBQuery


Sujet :

Connexion aux bases de données Firebird

  1. #1
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut Verification de code pour IBQuery
    Salut les amis,
    Vérifiez s'il vous plaît ce code pour moi.

    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
    Procedure TForm2.ComboClasseSelect(Sender: TObject);
    var
      DESIGN_CLASS  : String;
    begin
    {**** Recherche d'instruction sql pour le remplissage
          des frais d'inscription et de formation}
          //CurrencyEdit2.Text:= ;
          ComboClasse.Text:=DESIGN_CLASS;
          IBQuery1.Active:=True;
          IBQuery1.Close;
          IBQuery1.SQL.Clear;
          DESIGN_CLASS:=IBQuery1.ParamByName('DESIGN_CLASS').AsString  ;
          IBQuery1.SQL.Add('SELECT FRFORMA FROM FRAIS WHERE DESIGN_CLASS = ''DESIGN_CLASS''');
          IBQuery1.SQL.Add('VALUE (:DESIGN_CLASS)');
     
          IBQuery1.Params[0].AsString := DESIGN_CLASS;
          IBQuery1.ExecSQL;
          CurrencyEdit1.Text := IBQuery1.FieldByName('FRFORMA').AsString;
     
    end;
    Lorsque j'applique l'evenement onselect de mon ComboBox, une boîte de dialogue : Paramètres DESIGN_CLASS non trouvés s'affiche.
    L'important n'est pas de tout savoir mais de savoir où tout se trouve !

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 902
    Points : 6 026
    Points
    6 026
    Par défaut


    un petit rappel sur le SQL serait le bienvenu....(syntaxe de la commande SELECT)

    Dans ton code:

    que vaut DESIGN_CLASS (la variable) quand tu l'affectes à ComboClasse.Text ?

    3 lignes + bas:

    tu alimentes DESIGN_CLASS par un paramètre de IBQuery1 que tu viens juste de fermer (on ne sait pas si elle a été exécutée, ni avec quelle commande, ni le résultat de l'exec)

    Bref, ça me parait confus....

    Sais-tu bien ce que tu veux faire ?
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Procedure TForm2.ComboClasseSelect(Sender: TObject);
    var
    DESIGN_CLASS : String;
    begin
    {**** Recherche d'instruction sql pour le remplissage
    des frais d'inscription et de formation}
    //CurrencyEdit2.Text:= ;
    ComboClasse.Text:=DESIGN_CLASS; // <-- DESIGN_CLASS n'est pas initialisé !
    IBQuery1.Active:=True; // <-- Inutile si y a un Close juste après
    IBQuery1.Close;
    IBQuery1.SQL.Clear; // <-- Tu viens d'effacer la requete.....
    DESIGN_CLASS:=IBQuery1.ParamByName('DESIGN_CLASS').AsString ; // <-- ...donc y a rien dedans, pas meme le paramètre 'DESIGN_CLASS' !
    IBQuery1.SQL.Add('SELECT FRFORMA FROM FRAIS WHERE DESIGN_CLASS = ''DESIGN_CLASS'''); // <-- plutot ecrire: [...]WHERE DESIGN_CLASS = ESIGN_CLASS');
    IBQuery1.SQL.Add('VALUE (ESIGN_CLASS)'); // <-- Ce n'est pas du SQLvalable dans un SELECT

    IBQuery1.Params[0].AsString := DESIGN_CLASS; // <-- là par contre le paramètre existe (si correction), donc ecrire: ParamByName('DESIGN_CLASS').AsString := DESIGN_CLASS;
    IBQuery1.ExecSQL; >// <-- F1 sur ExecSQL.. c pas le bon, il faut faire Open;
    CurrencyEdit1.Text := IBQuery1.FieldByName('FRFORMA').AsString;

    end;
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  4. #4
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    Euhhh!!! En faite voila
    c'est que c'est le contenu du combobox qui sera le critère d'affichage
    c'est comme si je faisais un truc de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'select champ1 from table1 where champ2 = 'xxxx''
    le resultat sera affiché dans le TEdit1
    mais ce resultat affiché dépendra du contenu du combobox

    Vous voyez un peu ce que je veux faire les amis.
    L'important n'est pas de tout savoir mais de savoir où tout se trouve !

  5. #5
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Dans l'inspecteur d'objet, IBQuery1.SQL doit contenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT FRFORMA
    FROM FRAIS
    WHERE DESIGN_CLASS = :DESIGN_CLASS

    Dans le code :
    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
     
    Procedure TForm2.ComboClasseSelect(Sender: TObject);
    begin
    {**** Recherche d'instruction sql pour le remplissage
          des frais d'inscription et de formation}
      with IBQuery1 do
        begin
          Close;
          ParamByName('DESIGN_CLASS').AsString := ComboClasse.Text;
          Open;
          if Not Eof then
            CurrencyEdit1.text := FieldByName('FRFORMA').AsString
          else
            // Pas de resultat, on fait coa ?
        end;
    end;
    Comprends-tu la démarche ?
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  6. #6
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    Tu n'vas pas m'croire:
    Figure-toi que dans l'inspecteur d'objet, IBQuery1.SQL j'ai écrit ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select FRFORMA
    from FRAIS 
    where DESIGN_CLASS =  'Gecom A'
    alors ce 'Gecom A' n'est qu'un critère d'affichage pour une classe !!! C'est pas vrai.

    Ok ça y est il tourne à merveille.

    Grand merci.
    L'important n'est pas de tout savoir mais de savoir où tout se trouve !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/11/2003, 10h37
  2. code pour fermer un formulaire
    Par rippey dans le forum IHM
    Réponses: 2
    Dernier message: 21/10/2003, 15h51
  3. [Lomboz] Génération de code pour EJB
    Par paikan dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 09/07/2003, 14h28
  4. Réponses: 2
    Dernier message: 01/04/2003, 22h09
  5. code pour interbase 6.0 et 6.5 de generateur
    Par tripper.dim dans le forum InterBase
    Réponses: 4
    Dernier message: 01/07/2002, 11h29

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