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 :

Calcul dans une base de donnée paradox


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut Calcul dans une base de donnée paradox
    Boujour à tous,
    Alors voilà mon problème, j'ai créé une base de données paradox 7 avec des prix dedans et je voulais savoir qu'est ce que je dois taper dans "code" pour faire des additions divisions ect...
    exemple:

    j'ai une colonne prix htva , taux tva et tvac


    Comment reussir à calculer le total du prix tvac si j'en ai plusieurs dans la même colonne?? et comment faire pour qu'il calcul le prix tvac avec le prix htva et le tx tva??
    Je suis encore débutant :/ et j'aimerai bien comprendre
    d'avance merci.

  2. #2
    Membre actif Avatar de touhami
    Inscrit en
    Avril 2002
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 327
    Points : 264
    Points
    264
    Par défaut
    bonjour,
    ne t'inquiete pas c'est simple comme Bonjour,
    tu dispose de deux solution
    1- utilise une requette SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Colone1 , Colnne 2 , (Colone1+ colone2) as resultat1
    2- d'utiliser les champs calculer
    si tu utilise les Composant BDE pour l'accesse a ta base double clique sur le composant TTable avec le bouton droit et tu choisi ajouter un nouveau champs , puis tu donne un nom a ton nouveau champs et bien sure son type, ensuite dans l'evenement OncalculatedField de ton fameux composant TTable tu ajoute la formule de calcule :
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaTable.fieldbyname('Total').ascurrency :=  MaTable.fieldbyname('Quantité').asinteger * MaTable.fieldbyname('Prix').ascurrency;
    bien sure Total est le nom de ton nouveau champs calculer.
    et c'est tous.
    bon courage et bon developpement.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Merci pour ta réponse

  4. #4
    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
    Bonjour,

    J'ai le même probleme. enfin presque...

    J'ai fait une requete SQL me permettant de mettre dans une table temporaire des champs nécessaires pour calculer un cout.
    La difficulté par rapport à Whinespirit, est que je calcule comme suit:

    CoutTOtal =
    Cout1 + Cout2 + coefficient*(Temps1*NbDhomme*Nbd'heure)

    Dc plusieurs types se superposent.
    Je souhaiterais employer la 1ere méthode (par requete SQL) et insérer les résultats dans une nouvelle colonne à la fin de ma table.

    Le HIC est que je ne sais pas comment je vais gérer ça.

    Je pensais faire

    Select colonne1,colonne2,colonne3,...colonne6 , (colonne1+colonne2+colonne3*colonne4*colonne5*colonne6) As Resultat1
    ...

    Qu'en pensez vous,???

  5. #5
    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 forzaxelah
    Bonjour,

    J'ai le même probleme. enfin presque...

    J'ai fait une requete SQL me permettant de mettre dans une table temporaire des champs nécessaires pour calculer un cout.
    La difficulté par rapport à Whinespirit, est que je calcule comme suit:

    CoutTOtal =
    Cout1 + Cout2 + coefficient*(Temps1*NbDhomme*Nbd'heure)

    Dc plusieurs types se superposent.
    Je souhaiterais employer la 1ere méthode (par requete SQL) et insérer les résultats dans une nouvelle colonne à la fin de ma table.

    Le HIC est que je ne sais pas comment je vais gérer ça.

    Je pensais faire

    Select colonne1,colonne2,colonne3,...colonne6 , (colonne1+colonne2+colonne3*colonne4*colonne5*colonne6) As Resultat1
    ...

    Qu'en pensez vous,???
    Tu n'es pas obligé de faire l'affichage des autres colonnes pour le calcul

    un select simplement avec la formule suffit.
    Modérateur Delphi

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

  6. #6
    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
    ok donc je fais

    Select (colonne1*.......Colonne n ) As Colonne n+1 ???

    mais SQL gère tout seul les problemes de typages ??? (mélange de Time, Currency , Short etc...)????

  7. #7
    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 forzaxelah
    ok donc je fais

    Select (colonne1*.......Colonne n ) As Colonne n+1 ???

    mais SQL gère tout seul les problemes de typages ??? (mélange de Time, Currency , Short etc...)????
    Si tu as des conversion à faire , va falloir le faire à la main (surtout pour les time) avec les fonctions de SQL ou via les champs calculés avec delphi

    Sinon pour la requete je crois que tu n'as pas compris ma remarque.

    Je te disais seulement que la partie en rouge n'est pas obligatoire pour le résultat de ta requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select Colonne1,Colonne2, ..., ColonneN,
    (Colonne1 + Colonne2 * ... * ColonneN) as Resultat1 
    from ...
    Modérateur Delphi

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

  8. #8
    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
    bon il y a toujours des problemes de filtres......lol
    malgré ce que j'ai écrit j'avais parfaitement compris ce que tu m'as écrit, je t'en remercie

    cependant, pourrais tu me rééxpliquer ce que tu entends par "à la main"??

    En fait, je vais te montrer ma requete et te l'expliquer.
    En résumé je prends des données issues de différentes tables et le tout est calculer grâce à ce que j'ai demandé hier...

    'INSERT INTO Calculs
    SELECT Nb_Km_Annuel,Periode_LCC,MOE_CostHour,Operation_M,Prix,
    Tps_Operation,Nb_MOE,Cout_Conso,Pas_Nominal,Espac_Max,Limit_Max FROM Arbo A LEFT JOIN Param_LCC L
    ON A.ID_Engin_FK3 = L.ID_Engin_FK1
    LEFT JOIN ID_M M
    ON A.ID_Engin_FK3 = M.ID_Engin_FK2
    WHERE Nom_Pas_FK1 IN
    ('SELECT Nom_Pas_FK1 FROM Arbo A
    LEFT JOIN ID_M M
    ON A.Nom_Pas_FK1 = M.Nom_Pas
    WHERE M.Pas_Nominal
    BETWEEN '''+ EntreMP_Label.Caption+'''
    AND '''+EtMP_Label.Caption+'''
    )
    AND concat('Module_N',inttostr(SelectedLevel)) = '''+ SelectedModule +''''


    Voilà!!!!!! ENsuite je refais une requete qui calcule comme on l'a dit précemment!!!


    Mon probleme est que je ne peux modifier un par un les données liées au Temps......
    Comment faire????

  9. #9
    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
    Je ne comprend pas le problème que tu as ?

    Fait voir le code en complet, ca aidera pour la comprehension et montre le formule que tu utilises pour le calcul ca aidera aussi
    Modérateur Delphi

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

  10. #10
    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
    Bon déjà j'ai un petit probleme dans ma requete ci-dessus:
    Sans le INSERT, ça marche mais avec le INSERT il me met :
    "EDBEngineError avec le message 'Parametre Incorrect.'. Processus Stoppé......."
    Je ne vois pas ou est l'erreur... surtout que son explication n'est pas très clair pour moi.

    Ensuite,

    Cette requete a donc pour but de créer une table temporaire, à laquelle s'ajoutera la colonne "Cout_Total" permettant d'avoir pour chaque ligne un cout total.
    Donc après cette requete je lance la requete calculs:

    DataModule1.QSelectModule.close;
    DataModule1.QSelectModule.SQL.Clear;
    DataModule1.QSelectModule.SQL.Add('SELECT Tps_Operation,MOE_CostHour,Nb_MOE,Cout_Conso,Prix,(Tps_Operation*MOE_CostHour*Nb_MOE)+Cout_Conso+Prix As Cout_Total');
    DataModule1.QSelectModule.ExecSQL;

    Logiquement, si la colonne Cout_Total existe elle devrait me la remplir.

    Cependant, je me demandais si je ne pouvais pas ajouter directement cette requete de calcul dans la longue requete que j'ai collé dans le message précédent....

  11. #11
    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
    Bon après quelques erreurs, j'ai réussi à trouver.
    J'avais dans ma table Calculs, un champ en plus (le fameux cout_Total).

    Le problème c'est que je ne sais pas comment pouvoir ajouter le champ 'Cout_Total' maintenant...

    On m'a dit que la requete "ALTER TABLE" n'était pas recommandé...

  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
    normalement oui (sauf si erreur dans ce que j'ai ecris) mais tu peux faire directement un select avec le resultat sans avoir besoin de faire une table temporaire

    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
     
    SELECT Nb_Km_Annuel,Periode_LCC,MOE_CostHour,Operation_M,Prix,
    Tps_Operation,Nb_MOE,Cout_Conso,Pas_Nominal,Espac_Max,Limit_Max
    ((Tps_Operation*MOE_CostHour*Nb_MOE)+Cout_Conso+Prix As Cout_Total) as Resultat
     FROM Arbo A LEFT JOIN Param_LCC L
    ON A.ID_Engin_FK3 = L.ID_Engin_FK1
    LEFT JOIN ID_M M
    ON A.ID_Engin_FK3 = M.ID_Engin_FK2
    WHERE Nom_Pas_FK1 IN
    ('SELECT Nom_Pas_FK1 FROM Arbo A
    LEFT JOIN ID_M M
    ON A.Nom_Pas_FK1 = M.Nom_Pas
    WHERE M.Pas_Nominal
    BETWEEN '''+ EntreMP_Label.Caption+'''
    AND '''+EtMP_Label.Caption+'''
    )
    AND concat('Module_N',inttostr(SelectedLevel)) = '''+ SelectedModule +''''
    Sinon petite astuce, au lieu de faire des '''''' pour encadrer tes textes pour la requete utilise la focntion quotedStr c'est mieux pour la lecture

    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
     
    With Query do
    begin
       Close;
        SQL.Clear;
        SQL.Add('
        SQL.Add('SELECT Nb_Km_Annuel,Periode_LCC,MOE_CostHour,Operation_M,Prix,');
          SQL.Add('Tps_Operation,Nb_MOE,Cout_Conso,Pas_Nominal,Espac_Max,Limit_Max');
        SQL.Add('((Tps_Operation*MOE_CostHour*Nb_MOE)+Cout_Conso+Prix As Cout_Total) as Resultat');
        SQL.Add('  FROM Arbo A LEFT JOIN Param_LCC L');
        SQL.Add('ON A.ID_Engin_FK3 = L.ID_Engin_FK1');
        SQL.Add('LEFT JOIN ID_M M');
        SQL.Add('ON A.ID_Engin_FK3 = M.ID_Engin_FK2');
        SQL.Add('WHERE Nom_Pas_FK1 IN');
        SQL.Add('('SELECT Nom_Pas_FK1 FROM Arbo A');
        SQL.Add('LEFT JOIN ID_M M');
        SQL.Add('ON A.Nom_Pas_FK1 = M.Nom_Pas');
        SQL.Add('WHERE M.Pas_Nominal');
        SQL.Add('BETWEEN ' + QuotedStr(EntreMP_Label.Caption));
        SQL.Add('AND '+ QuotedStr(EtMP_Label.Caption) +')');
        SQL.Add('AND concat('Module_N',inttostr(SelectedLevel)) = ' + QuotedStr(SelectedModule));
      Open;
     end;
    Modérateur Delphi

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

  13. #13
    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
    Mais dans:
    ((Tps_Operation*MOE_CostHour*Nb_MOE)+Cout_Conso+Prix As Cout_Total) as Resultat

    Il n'ya pas un As de trop????

    De plus, comment va réagir le SGBD si Cout_Total n'est pas dans une table que je sélectionne???

  14. #14
    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
    Et ce qui me pendait au nez arriva:
    "Différence de type dans une expression"

    SelectedModule := TreeView1.Selected.Text;
    SelectedLevel := TreeView1.Selected.Level;
    close;
    SQL.Clear;
    SQL.Add('SELECT Nb_Km_Annuel,Periode_LCC,MOE_CostHour,Operation_M,Prix,
    Tps_Operation,Nb_MOE,');
    SQL.Add('Cout_Conso,Pas_Nominal,Espac_Max,Limit_Max,');
    SQL.Add('(Tps_Operation*MOE_CostHour*Nb_MOE)+Cout_Conso+Prix As Cout_Total');
    SQL.Add('FROM Arbo A LEFT JOIN Param_LCC L ON A.ID_Engin_FK3 = L.ID_Engin_FK1');
    SQL.Add('LEFT JOIN ID_M M ON A.ID_Engin_FK3 = M.ID_Engin_FK2');
    SQL.Add('WHERE Nom_Pas_FK1 IN (');
    SQL.Add('SELECT Nom_Pas_FK1 FROM Arbo A LEFT JOIN ID_M M ON A.Nom_Pas_FK1 = M.Nom_Pas');
    SQL.Add('WHERE M.Pas_Nominal BETWEEN ' + QuotedStr(EntreMP_Label.Caption));
    SQL.Add('AND '+ QuotedStr(EtMP_Label.Caption) +')');
    SQL.Add('AND concat('+QuotedStr(Module_N)+','+QuotedStr(inttostr(SelectedLevel))+') = ' + QuotedStr(SelectedModule));
    Open;


    Par ailleurs j'ai eu des problemes avec les quote etc... mais résolu je pense...
    bon je v manger et je m'y remets....

    On revient à la question du début : qu'entends tu par "à la main" ??

  15. #15
    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 forzaxelah
    Mais dans:
    ((Tps_Operation*MOE_CostHour*Nb_MOE)+Cout_Conso+Prix As Cout_Total) as Resultat

    Il n'ya pas un As de trop????
    Oups oui As Resultat est en trop ^^

    Citation Envoyé par forzaxelah
    De plus, comment va réagir le SGBD si Cout_Total n'est pas dans une table que je sélectionne???
    Cout_total est un champ calculé donc ca ne gènera en rien
    Une requete Select permet de créer une table "temporaire" (une vue) qui sera détruire lorsque tu fermeras ton composant.
    Modérateur Delphi

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

  16. #16
    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
    Citation Envoyé par Malatar
    Si tu as des conversion à faire , va falloir le faire à la main (surtout pour les time) avec les fonctions de SQL ou via les champs calculés avec delphi
    Désolé encore de te déranger mais c'est vrai je ne comprends pas bien comment je pourrais modifier à la main avec SQL dans ma requete???

    j'essaie de tester avec des CAST ou CONVERT....

  17. #17
    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
    Juste pour info, je dois convertir en quoi les données?

    Si c'est du time : je mets du Int
    Si c'est du currency : je mets du Int
    Si c'est du int : ben je laisse ...


    et après le As, je fais l"inverse : int vers currency

    C'est ça?

  18. #18
    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 forzaxelah
    Juste pour info, je dois convertir en quoi les données?

    Si c'est du time : je mets du Int
    Si c'est du currency : je mets du Int
    Si c'est du int : ben je laisse ...


    et après le As, je fais l"inverse : int vers currency

    C'est ça?
    Bin ca deprendra du résultat que tu veux. Fait un test, tu calculs à la main et tu vérifies que le calcul est correcte pour la requete.
    Modérateur Delphi

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

  19. #19
    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
    J'ai essayé ça mais c'est pas top top il me dit:

    CAST(Tps_Operation,Integer)*CAST(MOE_CostHour,Integer)*CAST(Nb_MOE,Integer)+CAST(Cout_Conso,Integer)+CAST(Prix,Integer) As CAST(Cout_Total,Currency)')

    Voyons voir autre chose...

  20. #20
    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
    J'ai essayé avec un truc simple pour le calcul et il me marque :

    "EDBEngineError : Fonctionnalité non supportée"

    Je suppose que cela veut dire que ma Base Paradox ne supporte pas tant de trucs ou je me trompe? (J'espère...)

Discussions similaires

  1. Des calculs dans une base de données
    Par elharrak dans le forum NetBeans
    Réponses: 1
    Dernier message: 19/06/2012, 16h30
  2. intégrer un fichier image dans une base de donnée?
    Par Lody dans le forum Requêtes
    Réponses: 9
    Dernier message: 16/03/2006, 19h08
  3. les images dans une base de données
    Par houhou dans le forum Bases de données
    Réponses: 8
    Dernier message: 22/06/2004, 14h27
  4. [SYBASE]Libérer espace libre dans une base de données ?
    Par le_parrain dans le forum Sybase
    Réponses: 3
    Dernier message: 14/05/2004, 09h36
  5. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12

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