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

WinDev Discussion :

Mise a jour avec un sum ! [WD14]


Sujet :

WinDev

  1. #21
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    189
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2009
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    Euh.........oui............mais nan !

    En faite j'ai un peu de mal la et je me retrouve un peu perdu, et je ne comprend pas très bien.
    Voila ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    i est un entier = 0
    requête est une chaîne = ("SELECT TabDept.NomRegion, SUM(CADept) as total  FROM TabReg, TabDept  WHERE TabDept.NomRegion = TabReg.Nomregion  GROUP BY TabDept.NomRegion, TabReg.Nomregion ORDER BY TabReg.Nomregion ASC ")
     SQLExec(requête, "pat")
    TANTQUE SQLAvance("pat")=0
    i++
    NomRegion[i]=SQLLitCol("pat", 1)
    SUM(CADept)[i] = SQLLitCol("pat", 2)
     
    UPDATE
    Et après, ben je vois pas trop ce que vous voulez faire, parce que le update va certainement pas trop accepter ce que j'ai a lui dire.

  2. #22
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 953
    Points : 766
    Points
    766
    Par défaut
    Moi, je vois cela plutôt comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sgCADept est une chaîne (OU UN ENTIER)
     
     
    sRequete est une chaîne="SELECT TR.NomRegion..........sum(CADept) WHERE ..........  ORDER BY ART_CODE DESC "
    SI	SI SQLExec(sRequete,"REQ") ALORS
    	SI	SQLAvance("REQ") = 0 ALORS
    		variable=SQLLitCol("REQ", 1)
     
    	UPDATE...........SET CADept LIKE '"+gsCADept+"%'
     
    	FIN
    	FIN
    Raptor92
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  3. #23
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    189
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2009
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    Et nan toujours pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    sSgCADept est une chaîne
    variable est une chaîne
    sRequete est une chaîne=("SELECT TabDept.NomRegion, SUM(CADept) as total  FROM TabReg, TabDept  WHERE TabDept.NomRegion = TabReg.Nomregion  GROUP BY TabDept.NomRegion, TabReg.Nomregion ORDER BY TabReg.Nomregion ASC ")
    	SI SQLExec(sRequete,"REQ") ALORS
    	SI	SQLAvance("REQ") = 0 ALORS
    		variable=SQLLitCol("REQ", 1)
     
    		SQLExec("UPDATE TAbReg SET CAreg LIKE '"+sSgCADept+"%'")
     
    	FIN
    FIN
    Il me dit: "Aucune syntaxe de SQLExec ne correspond.", pour la dernière ligne.
    Ce que je comprend pas, c'est que la chose que je veux faire ne ma pas l'air compliqué mais que je n'arrive pas a trouver la solution.
    Parce que si on résume, je veux récupérer les données de mon sum(que j'arrive à afficher), et les rentrer dans ma table TabReg.
    Vois pas, vois pas, vois pas, vois pas...

  4. #24
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 953
    Points : 766
    Points
    766
    Par défaut
    Bon,

    Un peut d'humour à ce stade ne fait pas de mal...............

    ..............Dés que l'on pense que cela est simple, c'est là que tout devient très compliqué.................

    Dans ton cas, c'est en effet simple de récupérer une donnée d'une première table, mais tu dois récupérer ce résultat afin de faire un Update vers une autre table.

    C'est pourquoi tu déclare ce résultat en tant que variable.

    Par contre, mon code fonctionne sous windev, or je crois me souvenir que tu m'a dit développer uniquement sur ton server, et dans ce cas, je ne suis pas certain que mon code fonctionne.

    Pour que tu comprennes un peut mieux, regarde le sujet que j'ai ouvert à propos de requête INsert, j'y ai mis mon code car j'ai un problème dans la génération de code barre, et tu verra qu'à l'aide de requêtes, je récupère des variables et les insèrent vers d'autres champs.

    L'Update fonctionne sur le même principe

    Raptor92
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  5. #25
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    189
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2009
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    Non non non !
    Je code sur Windev, y a pas de soucis la dessus.
    Nan, si je t'ai dis l'autre jour que je codais sur mon serveur, c'était pour faire des test et avoir le résultat en temps réel(enfin un peu plus vite qu'avec WD).
    Donc oui ton code m'intéresse, je vais regarder et essayer de comprendre.

  6. #26
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    C'est quelque chose comme ça qu'il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Si SQLExec()
        tantque SQLAvance()=0
            variable=SQLLitCol()
     
          UPDATE...................variable...
     
          FIN
    FIN
    Patrick Catella

    Je ne réponds pas aux messages privés si ceux ci suivent un sujet. Il est préférable pour tous de poursuivre la discussion dans le sujet d'origine.

    Je suis Concepteur développeur Windev (10 ans) et Windev mobile (4 ans) en recherche d'emploi. J'etudie toute proposition

  7. #27
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    189
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2009
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    Peut être pa finalement, il y a peut être encore plus simple.

    J'ai tester ça sur mon serveur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    insert into TabReg(NomRegion, Population)
    select NomRegion, sum(CADept) as total
    from TabDept
    group by NomRegion
    car en regardant un cours sur internet, cette solution est possible apparemment.
    Mon seul problème est que je ne peut pas inserer les valeurs dans ma table, car NomRegion est la clé primaire et que ça bloque.
    Donc il faudrait que je mette une colonne "ID" qui s'incrémenterait automatiquement, mais la je sais pas du tout comment faire.
    Vous avez une idée ?

  8. #28
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    Ben non désolé... c'est bien pour ça que je m'evertue a te donner la solution ci haut...
    Patrick Catella

    Je ne réponds pas aux messages privés si ceux ci suivent un sujet. Il est préférable pour tous de poursuivre la discussion dans le sujet d'origine.

    Je suis Concepteur développeur Windev (10 ans) et Windev mobile (4 ans) en recherche d'emploi. J'etudie toute proposition

  9. #29
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Faîtes un

    avant le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into TabReg(NomRegion, Population)
    select NomRegion, sum(CADept) as total
    from TabDept
    group by NomRegion
    sinon la contrainte d'intégrité définie par la clé primaire <NomRegion> est violée.

  10. #30
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    189
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2009
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    Ok mogwai, mais j'ai essayer ta solution, mais ça ne marche pas, tout du moins, je narive pas a la faire marcher. Regarde un peu plus haut j'ai mis ce que j'avais fait et l'erreur que ça m'avais retourner.

  11. #31
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    Ton erreur vient de là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLExec("UPDATE TAbReg SET CAreg LIKE '"+sSgCADept+"%'")
    En effet, le nom de la requête n'est pas optionel, il faut donc écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLExec("UPDATE TAbReg SET CAreg LIKE '"+sSgCADept+"%'","REQ2")
    Patrick Catella

    Je ne réponds pas aux messages privés si ceux ci suivent un sujet. Il est préférable pour tous de poursuivre la discussion dans le sujet d'origine.

    Je suis Concepteur développeur Windev (10 ans) et Windev mobile (4 ans) en recherche d'emploi. J'etudie toute proposition

  12. #32
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    189
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2009
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    VICTORY !!

    Merci vmolines, c'était bien ça.
    Pour clore ce sujet, je mets donc le code au final:
    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
    73
    74
    75
    76
    77
    78
    79
    80
     
    sResInfo est une chaîne
    ResSQL est une chaîne
    RESS est une chaîne
    IdFichier est un entier
    Reslecture est une chaîne
    requete est une chaîne
     
    sDel est une chaîne = "DELETE FROM TabInfo"
     
    SI SQLExec(sDel,"req" ) ALORS
    	Info("Données mise a jour")
    SINON 
    	ErreurInfo()
    FIN
     
     
    // Indication du chemin d'ouverture d'un fichier externe
    //SQLConnecte("Windev","wesco","")
    IdFichier = fOuvre("C:\GEO\chiffrefrance.txt",foLectureEcriture)
     
    SI IdFichier <> -1 ALORS
    	// Lecture d'une ligne dans ce fichier
    	Reslecture = fLitLigne(IdFichier)
    	TANTQUE Reslecture <> EOT
    		//Requête d'insertion dans al table de la base de données
    		requete="INSERT INTO TabInfo (NumDept, CADept) VALUES "+...
    		"('"+ExtraitChaîne(Reslecture,1,";")+"', '"+ExtraitChaîne(Reslecture,2, ";")+"')"
    		//exécution de la requête
    		SQLExec(requete,"REQ1")
    		//Connexion à la base de données
    		Reslecture = fLitLigne(IdFichier)
     
    	FIN
    FIN
    IdFichier=fFerme(IdFichier)
     
     
     
     
    sResInfo = SQLExec("SELECT * FROM TabInfo", "resi")
    SI sResInfo <> "" ALORS
    	SQLTable("resi", TABLE_Table3)
    	// Calcule le nombre d'enreg. résultat
    	nNbenr est un entier = TableOccurrence("TABLE_Table3")
    SINON
    	ErreurInfo()
    FIN
    SQLFerme("resi")
     
     
    sMise est une chaîne = ("UPDATE TabDept SET  CADept = ( SELECT  CADept FROM TabInfo WHERE TabDept.NumDept = TabInfo.NumDept)")
    SQLExec(sMise, "reso")
     
    ResSQL = SQLExec("SELECT * FROM TabDept", "res")
    SI ResSQL <> "" ALORS
    	SQLTable("res", TABLE_Table1)
    	// Calcule le nombre d'enreg. résultat
    	nNbenr = TableOccurrence("TABLE_Table1")
    SINON
    	ErreurInfo()
    FIN
    SQLFerme("res")
     
    sMise2 est une chaîne = ("DELETE FROM TAbReg ")
    sMise3 est une chaîne = ("INSERT INTO TabReg(NomRegion, Population) SELECT NomRegion, sum(CADept) as total FROM TabDept GROUP BY NomRegion")
     
    SQLExec(sMise2,"tap")
    SQLExec(sMise3,"tape")
     
     
    RESS = SQLExec("select * from TabReg", "resu" )
    SI RESS <> "" ALORS
    	SQLTable("resu", TABLE_Table2)
    	nNbenr = TableOccurrence("TABLE_Table2")
    SINON
    	ErreurInfo()
     
    FIN
    SQLFerme("resu")
    Voila, merci a tous de m'avoir aider.
    Bonne chance pour la suite.


  13. #33
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 953
    Points : 766
    Points
    766
    Par défaut
    Et bien félicitations mon chère et à très bientôt

    Raptor92
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/05/2010, 15h56
  2. mise a jour avec str_replace
    Par Invité dans le forum Débuter
    Réponses: 4
    Dernier message: 19/01/2010, 23h28
  3. mise a jour avec une requete croisee
    Par antoine dpt dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/09/2009, 13h55
  4. Mise A Jour Avec Des Dates Sous Access
    Par jo001 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/05/2007, 15h55
  5. [C#] Probleme de mise à jour avec un DetailsView
    Par zehle dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/07/2006, 17h40

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