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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

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

Discussions similaires

  1. [FAQ] Tables liées - Récupérer des infos sur la base source
    Par Jeff_Leger dans le forum Contribuez
    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