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 :

Ou et comment insérer une variable dans la requete?


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut Ou et comment insérer une variable dans la requete?
    En effet, imaginez qu'une personne veuille calculer le cout sur un an!
    Selon mon calcul, il faut donc modifier le champ "période_LCC" or celui-ci est dans la table Param_LCC...
    Ce que je voudrais c'est insérer une variable dans le calcul afin que celui-ci prenne une valeur comprise entre [0;Periode_LCC];

    J'essaye cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT Module_N6,Pas_nominal,Periode_LCC,Nom_Pas_FK1,Nb_Km_Annuel,MOE_CostHour,Operation_M,Prix,
           Duree_Operation,Nb_MOE,Cout_Conso,X As Integer,
    (Periode_LCC-->X *Nb_Km_Annuel/Pas_nominal)*(Duree_Operation*MOE_CostHour*Nb_MOE+Cout_Conso + Prix) As Cout_Total
    FROM Arbo A
       FULL OUTER JOIN Param_LCC L       ON L.ID_Engin_FK1 = A.ID_Engin_FK3
       FULL OUTER JOIN ID_M M            ON M.Nom_Pas = A.Nom_Pas_FK1
    WHERE Nom_Pas = 'GVG1'
    AND Module_N4 = 'MODULE PANTOGRAPHE CONTINU 1,5 KV';
    Sous delphi, on aurait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X := StrToInt(Edit1.text);
    Mais je suppose que c'est faux car il manque quelque chose....

    Comment faire????

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    Je pense avoir trouvé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    T_expl := StrToInt(MPChoixAn_Edit.Text);
    close;
    Clear;
    SQL.Add('SELECT Module_N6,Pas_nominal,Periode_LCC,Nom_Pas_FK1,Nb_Km_Annuel,MOE_CostHour,                           ');
    SQL.Add('       Operation_M,Prix,Duree_Operation,Nb_MOE,Cout_Conso,'+ QuotedStr(T_expl)+' As Integer,                                   ');
    SQL.Add('       ('+ QuotedStr(T_expl)+'*Nb_Km_Annuel/Pas_nominal)*(Duree_Operation*MOE_CostHour*Nb_MOE+Cout_Conso + Prix) As Cout_Total ');
    SQL.Add('FROM Arbo A                                                                                               ');
    SQL.Add('   FULL OUTER JOIN Param_LCC L       ON L.ID_Engin_FK1 = A.ID_Engin_FK3                                   ');
    SQL.Add('   FULL OUTER JOIN ID_M M            ON M.Nom_Pas = A.Nom_Pas_FK1                                         ');
    SQL.Add('WHERE Niveau_M <> '0'                                                                                     ');
    SQL.Add('AND concat('+QuotedStr(Module_N)+','+QuotedStr(inttostr (SelectedLevel))+') = ' + QuotedStr(SelectedModule) );
    F

  3. #3
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 901
    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 901
    Points : 6 026
    Points
    6 026
    Par défaut
    Presque....


    Sauf tu n'insères pas une variable pour "nourrir" la requète, tu cherches à récupérer quelque chose après exécution.

    Il faut t'intéresser à FiedByName('zzz').AsInteger ou zzz est
    • soit une colonne d'une table (select zzz from)
    • soit une substitution (select count(*) as zzz)
    lors de l'exploitation du résultat du query

    A ne pas confondre avec l'utilisation de paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select zzz from latable where colonne= :P1
    suivi de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonQuery.ParamByName('P1').AsInteger:=MonEntier;
    "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

Discussions similaires

  1. Comment insérer une variable dans une formule type R1C1
    Par jo385 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/07/2008, 13h20
  2. [SQL] Comment insérer une variable php dans une requête SQL ?
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/05/2007, 08h47
  3. Comment completer une variable dans une PROC
    Par Le Basque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/09/2004, 17h18
  4. [Crystal Reports 9] comment insérer une image dans Détails
    Par VVE dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/10/2003, 17h06
  5. comment recuperer une variable dans flash
    Par krépuscul dans le forum Flash
    Réponses: 30
    Dernier message: 16/10/2003, 09h40

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