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

C++Builder Discussion :

update table en fct des entrees sur form


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 89
    Par d�faut update table en fct des entrees sur form
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    AnsiString idchan=Label11->Caption;
    idchan=ReplaceStr(idchan,"'","'");
    AnsiString idmat=Label13->Caption;
    idmat=ReplaceStr(idmat,"'","'");
    AnsiString idfourni=Label14->Caption;
    idfourni=ReplaceStr(idfourni,"'","'");
    AnsiString date=DateTimePicker1->Date;
    AnsiString ville=ComboBox3->Text;
    ville=ReplaceStr(ville,"'","'");
    AnsiString chan=ComboBox1->Text;
    chan=ReplaceStr(chan,"'","'");
    AnsiString mat=ComboBox2->Text;
    mat=ReplaceStr(mat,"'","'");
    AnsiString quant=Edit1->Text;
    quant=ReplaceStr(quant,"'","'");
    AnsiString fourni=ComboBox4->Text;
    fourni=ReplaceStr(fourni,"'","'");
     
    SQLQuery1->Active=false;
    SQLQuery1->SQL->Clear();
    SQLQuery1->SQL->Add("SELECT idpanier FROM paniercommande WHERE `idchantier` LIKE '"+idchan+"' AND `idmateriaux` LIKE '"+idmat+"' AND `idfournisseur` LIKE '"+idfourni+"' AND `date` LIKE '"+date+"'");
    int resu=SQLQuery1->RecordCount;
    SQLQuery1->Active=true;
     
    if (resu >0)
         {
         Label15->Caption=SQLQuery1->FieldValues["idpanier"];
         }
     
     
    if (Label11->Caption!="" & Label13->Caption!="" & Label14->Caption!="")    //verifie si tout les champs necessaires ont ete rempli
    {
        int danspanier=ListView1->Items->Count;
     
       if (danspanier <= 0)  // s'il ya pas encore entrees dans le panier
       {
       enregisterpanier();// fonction definie auparavant qui marche 
     
       }
     
        else   // s'il ya des articles dans le panier
         {
           AnsiString idpan=Label15->Caption;
           if (Label15->Caption!="")
            {
             idpan=Label15->Caption;
             SQLQuery1->Active=false;
            SQLQuery1->SQL->Clear();
            SQLQuery1->SQL->Add("SELECT quanti FROM `paniercommande` WHERE `idpanier` LIKE '"+idpan+"'");
            SQLQuery1->Open();
            AnsiString ancienquanti = SQLQuery1->FieldValues["quanti"];
            double nouvelquanti=quant.ToDouble()+ ancienquanti.ToDouble();
            AnsiString qajour(nouvelquanti);
            SQLQuery1->Close();
            SQLQuery1->SQL->Clear();
            SQLQuery1->SQL->Add("UPDATE `paniercommande` SET quanti='"+qajour+"' WHERE `idpanier` LIKE '"+idpan+"'");
            SQLQuery1->ExecSQL();
           }
            else
            {
             enregisterpanier();
            }
     
        }
     
    }
     
    else
    {
    ShowMessage("Veuillez Remplier les Données Qui manquent");
    }
    }
    qd je compile j'ai une erreur (Add("SELECT quanti FROM `paniercommande` WHERE `idpanier` LIKE '"+idpan+"'") pas bon

    est ce que qq peut me debloquer mercu

  2. #2
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Bonjour,
    cela m'�tonnerai que le compilateur te donne comme message 'pas bon', or se message est important pour voir l'erreur, de plus, le compilateur te donne la ligne ou l'erreur est faite, tu peut donc ne donner que quelque ligne de code, avant et apr�s cette ligne (au cas ou l'erreur ne serai pas tout as fait sur cette ligne), ce qui permet de cibler l'erreur, et donc de la trouver plus facilement

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 89
    Par d�faut
    merci pottiez pour la facon de poster du code, je ne savais pas !
    mais parcontre je poste tout le code pour expliquer ce que je veux faire.
    le but est : si j'ai pas d'article dans ma Tlist View j'enregistre sur ma table panier et si j'ai deja des article , verifier si c le meme article que je suis entrain de rajouter est deja encode et si oui j'actualise la quantite simplement !
    mais on dirai qu'il fais que enregister , il ne prend pas en compte que l'article existe deja .
    merci
    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
    if (danspanier <= 0)  // s'il ya pas encore entrees dans le panier
       {
       enregisterpanier();// fonction definie auparavant qui marche 
     
       }
     
        else   // s'il ya des articles dans le panier
         {
           AnsiString idpan=Label15->Caption;
           if (Label15->Caption!="")
            {
             idpan=Label15->Caption;
             SQLQuery1->Active=false;
            SQLQuery1->SQL->Clear();
            SQLQuery1->SQL->Add("SELECT quanti FROM `paniercommande` WHERE `idpanier` LIKE '"+idpan+"'");
            SQLQuery1->Open();
            AnsiString ancienquanti = SQLQuery1->FieldValues["quanti"];
            double nouvelquanti=quant.ToDouble()+ ancienquanti.ToDouble();
            AnsiString qajour(nouvelquanti);
            SQLQuery1->Close();
            SQLQuery1->SQL->Clear();
            SQLQuery1->SQL->Add("UPDATE `paniercommande` SET quanti='"+qajour+"' WHERE `idpanier` LIKE '"+idpan+"'");
            SQLQuery1->ExecSQL();
           }

  4. #4
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Oui, mais tu n'as toujours pas mis le message d'erreur complet

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 89
    Par d�faut
    il ya plus de message d'erreur !! mais il ne prend pas en compte le cas ou des articles existent deja dans le panier et metrre a jour la quantite seulement au lieu de le remettre encore une fois dans la table .
    je ne vois pas prq ?

  6. #6
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Ok, d�sol� j'avais loup� un morceau du message
    il peut y avoir plusieurs cause et tu peut les trouver gr�ce au debugage :
    • Il ne r�cup�re peut �tre pas l'ancienne valeur dans la base.
    • Il ne fait peut �tre pas correctement l'addition entre l'ancienne valeur et la quantit� ajout�
    • Il y a peut �tre un probl�me lors des conversion AnsiString ->int ou int ->AnsiString
    • Il ne met peut �tre pas a jour la base correctement.
    A mon avis ce n'est pas la derni�re ni la premi�re car tes requete on l'air bonne

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 89
    Par d�faut
    oui en effet il ne r�cup�re pas l'ancienne valeur dans la base.je test ca part sur php my admin , il me dit "MySQL n'a retourn� aucun enregistrement", pourtant j'ai bien un enregsitrement dans la table avec ce que je demande , enfin je pige pas !!!
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT idpanier
    FROM paniercommande
    WHERE `idchantier` LIKE '"1"'
    AND `idmateriaux` LIKE '"1"'
    AND `idfournisseur` LIKE '"1"'
    LIMIT 0 , 30
    par contre qd je test ca, qd je retite les guillemets il me donne ce que je veux , mais sur le programme lui meme tjrs rien

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    SELECT idpanier
    FROM paniercommande
    WHERE `idchantier` LIKE 1
    AND `idmateriaux` LIKE 1
    AND `idfournisseur` LIKE 1
    LIMIT 0 , 30

  8. #8
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Pourquoi met tu des LIKE dans ta requ�te, je pense que ce n'est pas vraiment ce que tu veut

  9. #9
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 89
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    SQLQuery1->Active=false;
    SQLQuery1->SQL->Clear();
    SQLQuery1->SQL->Add("SELECT idpanier FROM paniercommande WHERE `idchantier` LIKE '"+idchan+"' AND `idmateriaux` LIKE '"+idmat+"' AND `idfournisseur` LIKE '"+idfourni+"' AND `date` LIKE '"+date+"'");
    la requete initiale est celle ci , je cherche si le meme enregistrement a deja ete introduit donc le meme id du materiaux , le meme id pour le chantier et le meme id du fournisseur

    a mon avis je suis entrain de m'embrouille un peu qd meme

  10. #10
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 89
    Par d�faut
    au fait je pense que j'ai trouver d'ou proviens l'erreur !!! de la date qd je retire la condition pour la date il reprend bien l'id du panier concerne .
    merci pour ton aide pottiez

  11. #11
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    De rien, mais tu doit pouvoir mettre ta date �galement dans ta requ�te si tu en as besoin, il faut juste qu'elle soit dans un format particulier pour les SGBD

  12. #12
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 89
    Par d�faut
    oui c fais aussi merci bcp encore une fois

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 0
    Dernier message: 22/04/2013, 16h46
  2. [ASE][T-SQL]droits des user sur une table...
    Par arona dans le forum Sybase
    R�ponses: 3
    Dernier message: 11/05/2006, 21h48
  3. Forme des marqueurs sur courbe
    Par anneso108 dans le forum SAP Crystal Reports
    R�ponses: 10
    Dernier message: 05/04/2006, 23h08
  4. Boucler sur une table pour renommer des valeurs
    Par webwhisky dans le forum PostgreSQL
    R�ponses: 2
    Dernier message: 03/01/2006, 14h19
  5. Garder la mise en forme des dossiers sur un CD
    Par tibodoudou dans le forum Autres Logiciels
    R�ponses: 2
    Dernier message: 19/12/2005, 16h42

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