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 :

Problème sur Insert [WD14]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    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 : 998
    Par défaut Problème sur Insert
    Bonjour à Tous,

    Lors d'une mise à jour d'inventaire, je dois faire un UPDATE si l'article est déjà en stock et un INSERT si l'uvc n'était pas en stock lors de la mémorisation.

    Mon souci est que dans le code ci-dessous, la mise à jour se fait bien (Update), mais pas l'INSERT.
    Et je ne vois plus où je peut faire une erreur:

    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
    SI OuiNon("Confirmer la mise à jour de l'inventaire numéro : '"+COMBO_MISSION+"' ") = Oui  ALORS
    	//MISE A JOUR DE LA TABLE INVENTAIRES - COLONNE INVE_QTE_INV
    	sEtat est une chaîne="2"
    i est un entier
    j est un entier
    nVariable est un entier
    POUR i = 1 A TableOccurrence(TABLE_ECART)
    	sRequêteCtrlStocks est une chaîne
    	sRequêteCtrlStocks="SELECT INVE_ARTICLE FROM INVENTAIRES WHERE INVE_ARTICLE='"+TABLE_ECART.COL_UVC[i]+"' "
    	SI EnModeTest() ALORS Trace(sRequêteCtrlStocks)
    	SI SQLExec(sRequêteCtrlStocks,"ReqCtrlStocks") ALORS
    			SI	SQLAvance("ReqCtrlStocks") = 0 ALORS
    				nVariable=SQLLitCol("ReqCtrlStocks", 1)
    		sRequêteMAJ_INV est une chaîne
    		sRequêteMAJ_INV="UPDATE INVENTAIRES SET INVE_QTE_INV = '"+TABLE_ECART.COL_QTE_INV[i]+"',INVE_ETAT='"+sEtat+"',INVE_DATE_INV ='"+DateSys()+"' WHERE INVE_ARTICLE='"+TABLE_ECART.COL_UVC[i]+"' "+...
    		"AND INVE_NUM='"+COMBO_MISSION+"' "
    		SI EnModeTest() ALORS Trace("Maj_Inv - ",sRequêteMAJ_INV)
    		SI SQLExec(sRequêteMAJ_INV,"ReqMAJ_INV") ALORS
     
    		FIN
    		sRequêteMAJ_STOCK est une chaîne
    		sRequêteMAJ_STOCK="UPDATE STOCKS SET STOC_QUANTITE = '"+TABLE_ECART.COL_QTE_INV[i]+"' WHERE STOC_ARTICLE='"+TABLE_ECART.COL_UVC[i]+"' "
    		SI EnModeTest() ALORS Trace("Maj_Inv - ",sRequêteMAJ_STOCK)
    		SI SQLExec(sRequêteMAJ_STOCK,"ReqMAJ_STOCK") ALORS
     
    		FIN
    	SINON
    		//INSERTION DES DONNEES INEXISTANTES
    		EMPL est une chaîne="R-RECEP"
    		sRequêteInsertINV est une chaîne
    		sRequêteInsertINV="INSERT INTO INVENTAIRES (INVE_NUM,INVE_SITE,INVE_PROPRIETAIRE,INVE_EMPLACEMENT,INVE_ARTICLE,INVE_QTE_INV,INVE_ETAT,INVE_DATE_INV) "+...
    		"VALUES('"+TABLE_ECART.COL_NUM[i]+"','"+TABLE_ECART.COL_SITE[i]+"','"+TABLE_ECART.COL_PROPRIETAIRE[i]+"','"+EMPL+"','"+TABLE_VISUALISATION.COL_ART_CODE[j]+"',"+...
    		"'"+TABLE_VISUALISATION.COL_QUANTITE[j]+"','"+DateSys()+"') "
    		SI EnModeTest() ALORS Trace("Insert_Inv - ",sRequêteInsertINV)
    		SI SQLExec(sRequêteInsertINV,"Req_Insert_INV") ALORS
     
    		FIN
    	FIN	
    	FIN
    FIN
    SINON
    	Ferme()
    FIN
    Peut être qu'avec un autre œil, j'aurais plus de chance

    Par avance, merci beaucoup
    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


  2. #2
    Membre éclairé Avatar de MicaelFelix
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 254
    Par défaut
    Tout droit du fichier d'aide :
    Attention : La fonction SQLExec ne lance pas le traitement de récupération du résultat en mémoire. La récupération du résultat est effectuée lors du premier appel à l'une des fonctions suivantes : SQLPremier, SQLTable ou SQLFetch.

    <Résultat> : Booléen

    Vrai si la requête a été exécutée, Faux dans le cas contraire. Si la requête n'a pas été exécutée, le message d'erreur peut être connu grâce à la variable SQL.MesErreur, après l'exécution de la fonction SQLInfoGene.
    Ce qui veut dire que tu ne rentres jamais dans ton SINON.

    Il faut que tu utilises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQLExec(...,"REQ1")
    SI SQLAvance("REQ1") = 0 ALORS 
    //Update
    SINON
    //Insert
    FIN
    Enfin j'ai écrit rapidement il faut vérifier (je n'utilise pas SQLExec).

  3. #3
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    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 : 998
    Par défaut
    Bonsoir,

    Merci beaucoup, mais même comme cela, çà ne fonctionne pas.
    En fait, SQLLitCol me permet de récupérer le résultat, et ce n'est pas cela qui me génère le problème
    Je suis en train d'analyser à nouveau les requêtes Update et Insert.
    Je suis presque sûr d'avoir un problème de construction quelque part.

    Bonne fin de soirée
    Et bonjour au Canada

    En fait, j'avais bien un problème de construction, les instruction 'FIN' n'étaient pas à la bonne place
    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.

Discussions similaires

  1. Problème sur INSERT et UPDATE en même temps
    Par harf18 dans le forum Développement
    Réponses: 2
    Dernier message: 09/12/2009, 15h50
  2. Datetime + Mysql problème sur insertion
    Par hirochirak dans le forum ASP.NET
    Réponses: 12
    Dernier message: 08/12/2008, 17h34
  3. Problème sur Insert
    Par jfphan dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/05/2008, 10h39
  4. problème sur requete insert
    Par shadowmoon dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/06/2005, 11h46
  5. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45

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