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 :

Requete INSERT [WD14]


Sujet :

WinDev

  1. #1
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    954
    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 : 954
    Points : 766
    Points
    766
    Par défaut Requete INSERT
    Bonjour,

    Encore un petit souci, mon code ci-dessous fonctionne maintenant à merveille, j'ai pour autant un dernier problème à résoudre.

    En effet, la requête INSERT fonctionne correctement, mais Windev ne m'insère que les deux premières lignes et point.

    Je dois avoir un problème ailleurs que dans la requête elle même mais je ne vois pas

    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
    POUR i = 1 A 10
    	SI TABLE_CODIM1.COL_CODE[i] ALORS
    		POUR j=1 A TableOccurrence(CODIM2_SUS)
    			SI CODIM2_SUS.SUS_CODE[j] ALORS
     
    // Contrôle si l'article en création existe déjà dans la base de données	
    variable est une chaîne
    Suffixe est une chaîne
    NouveauCode est une chaîne
    sRequete est une chaîne="SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE '"+SAI_ART_CODE+"%'  "
    //SI EnModeTest() ALORS Trace(sRequete)
    SI	SQLExec(sRequete,"REQ") ALORS
    	SI	SQLAvance("REQ") = 0 ALORS
    		variable=SQLLitCol("REQ", 1)
    		Suffixe=ExtraitChaîne(variable,2,"\") // Récupération de ce qu'il y a après l'anti-slash
    		Suffixe=Val(Suffixe)+1 	// Incrémente de 1 l'UVC
    		NouveauCode=ExtraitChaîne(variable,1,"\")+"\"+Suffixe // Constitution de la nouvelle UVC
     
    		SINON
    			NouveauCode=SAI_ART_CODE+"\1"
    			FIN 
     
    				// Si les données n'existe pas alors INSERT INTO ajoute les données 
    	Requete1 est une chaîne="INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_DATE_CREATION,ART_DATE_MODIFICATION,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) "+...
    	"VALUES('"+NouveauCode+"','"+NouveauCode+"','"+SAI_ART_NOMAPPEL+"','"+TABLE_CODIM1.COL_CODE[i]+"','"+CODIM2_SUS.SUS_CODE[j]+"','"+SAI_CREATION+"','"+SAI_DATE_MODIF+"','"+SAI_ART_LIBRE1+"','"+SAI_ART_NOM+"','"+COMBO_COLLEC+"','"+COMBO_ART_FOUR+"','"+COMBO_ART_MARQUE+"','"+COMBO_COMPOSITION+"','"+nouveauCode_AEN+"','"+COMBO_ORIGINE1+"','"+COMBO_TYPE1+"','"+SAI_EPA+"','"+SAI_EPVD4+"') "
    	SI EnModeTest() ALORS Trace(Requete1)
    	SI	SQLExec(Requete1,"REQ10") ALORS
     
    			FIN
    				FIN
    					FIN
    						FIN	
    						FIN
    						FIN
    Pourriez vous me guider

    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


  2. #2
    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
    Humm... je vois encore une confusion entre deux champs.

    Dans tes tables tu dois avoir au moins deux colonnes : le code et le champs de sélection. Dans le test fait après chaque "Pour i" tu dois tester le champs de sélection (ça c'est faux) et dans ton insert mettre le code (ça c'est bon).
    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

  3. #3
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    954
    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 : 954
    Points : 766
    Points
    766
    Par défaut
    Heu..............je n'ai pas tout compris

    J'ai en effet 2 colonnes, mais à la limite maintenant, je pourrais presque supprimer la colonne sélection.

    Mais quant je relis mon code, je ne vois pas où je fais appel à la colonne sélection (qui s'appelle du reste COL_SELECTION)

    Peut tu m'aider avant que le feux d'artifice se passe dans ma tête...

    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


  4. #4
    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
    Si si tu en as besoin. Tu selectionne ton code en clquant dedans donc tu en as besoin. Et c'est serulement si c'est coché que ce sera créé...

    Donc c'est ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    POUR i = 1 A 10
    	SI TABLE_CODIM1.COL_SELECTION[i] ALORS
    		POUR j=1 A TableOccurrence(CODIM2_SUS)
    			SI CODIM2_SUS.COL_SELECTION[j] ALORS
    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

  5. #5
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    954
    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 : 954
    Points : 766
    Points
    766
    Par défaut
    RESPECT..................

    Et de fait, dans la trace, il n'incrémente bien mais il ne m'insère toujours que 2 lignes, mais je crois savoir ou mais pas pourquoi

    Dans le code ci-dessous, je recherche si l'article existe et sinon je le crée et j'ajoute "\+1"
    Et du cout il me crée la même ligne avec \2, et comme cette colonne est l'ID, il ne m'en ajoute que 2

    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
    variable est une chaîne
    Suffixe est une chaîne
    NouveauCode est une chaîne
    sRequete est une chaîne="SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE '"+SAI_ART_CODE+"%'  "
    //SI EnModeTest() ALORS Trace(sRequete)
    SI	SQLExec(sRequete,"REQ") ALORS
    	SI	SQLAvance("REQ") = 0 ALORS
    		variable=SQLLitCol("REQ", 1)
    		Suffixe=ExtraitChaîne(variable,2,"\") 				// Récupération de ce qu'il y a après l'anti-slash
    		Suffixe=Val(Suffixe)+1 								// Incrémente de 1 l'UVC
    		NouveauCode=ExtraitChaîne(variable,1,"\")+"\"+Suffixe // Constitution de la nouvelle UVC
    		
    		SINON
    			NouveauCode=SAI_ART_CODE+"\1"
    			FIN
    Une idée

    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


  6. #6
    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
    Pas compris ton dernier post désolé.

    Peux tu : 1 réexpliquer ce que tu veux dire et 2 donner le code en entier stp
    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. #7
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    954
    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 : 954
    Points : 766
    Points
    766
    Par défaut
    Bonjour et merci,

    Bon, pour tenté d'être clair, lorsque je test le code (ci-dessous), cela me crée bien le premier article puisqu'il n'existe pas dans la base et ensuite me crée également la deuxième unité de vente (puisque qu'il y à dans le même article plusieurs coloris et tailles)

    J'ai mis des traces tout le long et je vois bien que l'INSERT foonctionne mais je ne vois pas pourquoi le code bloque après la deuxième unité de vente

    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
    POUR i = 1 A 10
    	SI TABLE_CODIM1.SELECTION[i] ALORS
    		POUR j=1 A TableOccurrence(CODIM2_SUS)
    			SI CODIM2_SUS.SELECTION[j] ALORS
     
    // Contrôle si l'article en création existe déjà dans la base de données	
    variable est une chaîne
    Suffixe est une chaîne
    NouveauCode est une chaîne
     
    sRequete est une chaîne="SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE '"+SAI_ART_CODE+"%'  "
    SI EnModeTest() ALORS Trace(sRequete)
    SI	SQLExec(sRequete,"REQ") ALORS
    	SI	SQLAvance("REQ") = 0 ALORS
    		variable=SQLLitCol("REQ", 1)
    		SI EnModeTest() ALORS Trace(ExtraitChaîne(variable,2,"\"))
    		Suffixe=ExtraitChaîne(variable,2,"\") // Récupération de ce qu'il y a après l'anti-slash
    		SI EnModeTest() ALORS Trace(Val(Suffixe)+1)
    		Suffixe=Val(Suffixe)+1 	// Incrémente de 1 l'UVC
    		SI EnModeTest() ALORS Trace(ExtraitChaîne(variable,1,"\")+"\"+Suffixe)
    		NouveauCode=ExtraitChaîne(variable,1,"\")+"\"+Suffixe // Constitution de la nouvelle UVC
     
    		SINON
    			SI EnModeTest() ALORS Trace(SAI_ART_CODE+"\1")
    			NouveauCode=SAI_ART_CODE+"\1"
    		FIN
     
    //Sélectionne le dernier code barre
    sVariable_EAN est une chaîne
    préfixe_AEN est une chaîne
    nouveauCode_AEN est une chaîne
    Cle est une chaîne
    Total est un entier
    Requete est une chaîne="SELECT MAX(ART_CODEBARRE) FROM ARTICLES " 
    SI SQLExec(Requete, "REQ1") ALORS
    	SI SQLAvance("REQ1")=0 ALORS
    		sVariable_EAN=SQLLitCol("REQ1", 1)
    		préfixe_AEN=Gauche(sVariable_EAN,12)
    		SI EnModeTest() ALORS Trace(Val(préfixe_AEN)+1)
    		préfixe_AEN=Val(préfixe_AEN)+1
    	    FIN
    	 	FIN
     
    //calcul du caractère de contrôle
    POUR ii = 1 A Taille(préfixe_AEN)        //Code est les 12 premiers caractères du code barre
    SI EstPair(ii) ALORS
    	Total+=Val(préfixe_AEN[[ii]])*3
    SINON
    	Total+=Val(préfixe_AEN[[ii]])
    FIN
    FIN
    Cle = ((PartieEntière(Total/10)+1)*10)-Total
    SI Cle = 10 ALORS
    	Cle = 0
    FIN  
    nouveauCode_AEN=0+préfixe_AEN + Cle 
     
     
    				// Si les données n'existe pas alors INSERT INTO ajoute les données 
    	Requete1 est une chaîne="INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_DATE_CREATION,ART_DATE_MODIFICATION,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) "+...
    	"VALUES('"+NouveauCode+"','"+NouveauCode+"','"+SAI_ART_NOMAPPEL+"','"+TABLE_CODIM1.COL_CODE[i]+"','"+CODIM2_SUS.SUS_CODE[j]+"','"+SAI_CREATION+"','"+SAI_DATE_MODIF+"','"+SAI_ART_LIBRE1+"','"+SAI_ART_NOM+"','"+COMBO_COLLEC+"','"+COMBO_ART_FOUR+"','"+COMBO_ART_MARQUE+"','"+COMBO_COMPOSITION+"','"+nouveauCode_AEN+"','"+COMBO_ORIGINE1+"','"+COMBO_TYPE1+"','"+SAI_EPA+"','"+SAI_EPVD4+"') "
    	SI EnModeTest() ALORS Trace(Requete1)
    	SI	SQLExec(Requete1,"REQ10") ALORS
     
    			FIN
    				FIN
    					FIN
    						FIN	
    						FIN
    						FIN
     
    SI OuiNon("Vous êtes sur le point de créer un article, veuillez confirmer votre choix") ALORS
    		Info("La fiche article a été créée")
    FIN
    J'ai pensé un moment qu'il me fallait un TANTQUE, mais puisque l'INSERT fonctionne, je n'en suis pas certain.

    Mais je ne sais pas non plus si mes variables sont bien déclarées (ici en tant que chaîne........mais fais je une erreur)

    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


  8. #8
    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
    Je n'ai rien vu de special dans le code.

    Il est cependant clair que suffixe devrait etre un entier plutot qu'une chaine mais cependant les opérations sur cette variable semblent faites correctement.

    Je n'ai pas compris ce que voulait dire 'bloquer' ? Le programme tourne-t'il ou se bloque t'il ?

    De plus, je ne comprend pas ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Requete est une chaîne="SELECT MAX(ART_CODEBARRE) FROM ARTICLES " 
    SI SQLExec(Requete, "REQ1") ALORS
    	SI SQLAvance("REQ1")=0 ALORS
    		sVariable_EAN=SQLLitCol("REQ1", 1)
    		préfixe_AEN=Gauche(sVariable_EAN,12)
    		SI EnModeTest() ALORS Trace(Val(préfixe_AEN)+1)
    		préfixe_AEN=Val(préfixe_AEN)+1
    	FIN
    FIN
    Il faudrait maintenant trace le code pas à pas pour voir ce qu'il fait et aisin controler les variables une a une. Le plus simple pour ça est d'ajouter un STOP en début de code et de lancer le programme en mode test.
    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. #9
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    954
    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 : 954
    Points : 766
    Points
    766
    Par défaut
    La portion de code que tu ne comprends pas me permet:

    1- Chercher le dernier code barre crée
    2- Extraire les 12 premier caractères
    3- Ajouter 1
    4- Calculer la clé de contrôle

    Ce qui me génère un nouveau code barre EAN13 pour toute nouvelle UVC créé

    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


  10. #10
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    954
    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 : 954
    Points : 766
    Points
    766
    Par défaut
    Désolé, j'oubliais,

    Le programme tourne correctement, mais pour mieux comprendre, voilà ce que me dit la trace:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE 'ZA-MAGALI%'  
    ZA-MAGALI\1
    INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_DATE_CREATION,ART_DATE_MODIFICATION,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) VALUES('ZA-MAGALI\1','ZA-MAGALI\1','','10','36','20090714','20090714','','','RH09','','','','0660000526568','','','0','0') 
    SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE 'ZA-MAGALI%'  
    2
    ZA-MAGALI\2
    INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_DATE_CREATION,ART_DATE_MODIFICATION,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) VALUES('ZA-MAGALI\2','ZA-MAGALI\2','','10','38','20090714','20090714','','','RH09','','','','0660000526575','','','0','0') 
    SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE 'ZA-MAGALI%'  
    2
    ZA-MAGALI\2
    INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_DATE_CREATION,ART_DATE_MODIFICATION,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) VALUES('ZA-MAGALI\2','ZA-MAGALI\2','','10','40','20090714','20090714','','','RH09','','','','0660000526572','','','0','0')
    Comme tu le vois, la première uvc a été crée ainsi que son code barre, la deuxième aussi, mais la troisième étant identique à la deuxième, cela ne me l'insère pas dans ma table puisque l'uvc est l'ID

    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


  11. #11
    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
    Ah oui... j'ai compris.

    C'est ça qui va pas :

    "SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE 'ZA-MAGALI%"

    Dès que tu as créé le 1° il te renvoie le premier et toujours le premier d'abord, il faudrait que tu trie ta requete sur code descendant. A ce moment là, à la premiere lecture tu auras le dernier code utilisé.
    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. #12
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    954
    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 : 954
    Points : 766
    Points
    766
    Par défaut
    Citation Envoyé par mogwai162 Voir le message
    Ah oui... j'ai compris.

    C'est ça qui va pas :

    "SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE 'ZA-MAGALI%"

    Dès que tu as créé le 1° il te renvoie le premier et toujours le premier d'abord, il faudrait que tu trie ta requete sur code descendant. A ce moment là, à la premiere lecture tu auras le dernier code utilisé.
    Vers quelque chose comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE 'ZA-MAGALI% ORDER BY ART_CODE DESC
    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


  13. #13
    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
    oui...
    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

  14. #14
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    954
    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 : 954
    Points : 766
    Points
    766
    Par défaut
    En attendant de trouver la solution finale, j'ai pré-réservé une chambre avec vue sur le parc à l'asile.............

    En ayant ajouté ORDER BY ART_CODE DESC, Il est bien passé de 2 à 3, pour autant, il en reste là.

    J'ai donc ajouté également un ORDER BY sur le code barre, mais je n'avais plus du tout de génération de code barre, donc je l'ai rétiré.

    Voici la nouvelle trace
    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
     
    SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE 'ZA-MAGALI%'  ORDER BY ART_CODE DESC 
    ZA-MAGALI\cf111
    066000052655
    66000052656
    INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_DATE_CREATION,ART_DATE_MODIFICATION,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) VALUES('ZA-MAGALI1','ZA-MAGALI1','','10','36','20090715','20090715','','','RH09','','','','0660000526568','','','0','0') 
    SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE 'ZA-MAGALI%'  ORDER BY ART_CODE DESC 
    1
    2
    ZA-MAGALI\cf112
    066000052656
    66000052657
    INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_DATE_CREATION,ART_DATE_MODIFICATION,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) VALUES('ZA-MAGALI2','ZA-MAGALI2','','10','38','20090715','20090715','','','RH09','','','','0660000526575','','','0','0') 
    SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE 'ZA-MAGALI%'  ORDER BY ART_CODE DESC 
    2
    3
    ZA-MAGALI\cf113
    INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_DATE_CREATION,ART_DATE_MODIFICATION,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) VALUES('ZA-MAGALI3','ZA-MAGALI3','','10','40','20090715','20090715','','','RH09','','','','0660000526572','','','0','0') 
    SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE 'ZA-MAGALI%'  ORDER BY ART_CODE DESC 
    2
    3
    ZA-MAGALI\cf113
    INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_DATE_CREATION,ART_DATE_MODIFICATION,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) VALUES('ZA-MAGALI3','ZA-MAGALI3','','10','42','20090715','20090715','','','RH09','','','','0660000526579','','','0','0')
    Pour le fun, j'ai caluclé, je devrais devenir fou dans 33h14"et 32 sec

    Mais je ne craque pas.............encore

    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


  15. #15
    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
    Dsl mais il faut tout me redonner a chaque fois...

    Quel est le code maintenant ?
    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

  16. #16
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    954
    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 : 954
    Points : 766
    Points
    766
    Par défaut
    Le voici

    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
    POUR i = 1 A 10
    	SI TABLE_CODIM1.SELECTION[i] ALORS
    		POUR j=1 A TableOccurrence(CODIM2_SUS)
    			SI CODIM2_SUS.SELECTION[j] ALORS
     
    // Contrôle si l'article en création existe déjà dans la base de données	
    variable est une chaîne
    Suffixe est une chaîne
    NouveauCode est une chaîne
     
    sRequete est une chaîne="SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE '"+SAI_ART_CODE+"%'  ORDER BY ART_CODE DESC "
    //SI EnModeTest() ALORS Trace(sRequete)
    SI	SQLExec(sRequete,"REQ") ALORS
    	SI	SQLAvance("REQ") = 0 ALORS
    		variable=SQLLitCol("REQ", 1)
    //		SI EnModeTest() ALORS Trace(ExtraitChaîne(variable,2,"\"))
    		Suffixe=ExtraitChaîne(variable,2,"\") // Récupération de ce qu'il y a après l'anti-slash
    //		SI EnModeTest() ALORS Trace(Val(Suffixe)+1)
    		Suffixe=Val(Suffixe)+1 	// Incrémente de 1 l'UVC
    //		SI EnModeTest() ALORS Trace(ExtraitChaîne(variable,1,"\")+"\"+Suffixe)
    		NouveauCode=ExtraitChaîne(variable,1,"\")+"\"+Suffixe // Constitution de la nouvelle UVC
     
    		SINON
    			SI EnModeTest() ALORS Trace(SAI_ART_CODE+"\1")
    			NouveauCode=SAI_ART_CODE+"\1"
    		FIN
     
    //Sélectionne le dernier code barre
    sVariable_EAN est une chaîne
    préfixe_AEN est une chaîne
    nouveauCode_AEN est une chaîne
    Cle est une chaîne
    Total est un entier
    Requete est une chaîne="SELECT MAX(ART_CODEBARRE) FROM ARTICLES " 
    SI SQLExec(Requete, "REQ1") ALORS
    	SI SQLAvance("REQ1")=0 ALORS
    		sVariable_EAN=SQLLitCol("REQ1", 1)
    //		SI EnModeTest() ALORS Trace(Gauche(sVariable_EAN,12))
    		préfixe_AEN=Gauche(sVariable_EAN,12)
    //		SI EnModeTest() ALORS Trace(Val(préfixe_AEN)+1)
    		préfixe_AEN=Val(préfixe_AEN)+1
    	    FIN
    	 	FIN
     
    //calcul du caractère de contrôle
    POUR ii = 1 A Taille(préfixe_AEN)        //Code est les 12 premiers caractères du code barre
    SI EstPair(ii) ALORS
    	Total+=Val(préfixe_AEN[[ii]])*3
    SINON
    	Total+=Val(préfixe_AEN[[ii]])
    FIN
    FIN
    Cle = ((PartieEntière(Total/10)+1)*10)-Total
    SI Cle = 10 ALORS
    	Cle = 0
    FIN  
    nouveauCode_AEN=0+préfixe_AEN + Cle 
     
     
     
    				// Si les données n'existe pas alors INSERT INTO ajoute les données 
    	Requete1 est une chaîne="INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_DATE_CREATION,ART_DATE_MODIFICATION,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) "+...
    	"VALUES('"+NouveauCode+"','"+NouveauCode+"','"+SAI_ART_NOMAPPEL+"','"+TABLE_CODIM1.COL_CODE[i]+"','"+CODIM2_SUS.SUS_CODE[j]+"','"+SAI_CREATION+"','"+SAI_DATE_MODIF+"','"+SAI_ART_LIBRE1+"','"+SAI_ART_NOM+"','"+COMBO_COLLEC+"','"+COMBO_ART_FOUR+"','"+COMBO_ART_MARQUE+"','"+COMBO_COMPOSITION+"','"+nouveauCode_AEN+"','"+COMBO_ORIGINE1+"','"+COMBO_TYPE1+"','"+SAI_EPA+"','"+SAI_EPVD4+"') "
    	SI EnModeTest() ALORS Trace(Requete1)
    	SI	SQLExec(Requete1,"REQ10") ALORS
     
    			FIN
    				FIN
    					FIN
    						FIN	
    						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


  17. #17
    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
    Désolé je m'y perd.

    Peux tu :

    1 - vider ton fichier parce que je ne comprend pas pourquoi il débute a 111.
    2 - Emlever les trace qui ne serviraient pas
    3 - Modifier les trace qui reste en mettant par exe trace(1,...) pour pouvoir les reperer facilement.
    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

  18. #18
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    954
    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 : 954
    Points : 766
    Points
    766
    Par défaut
    Voici le code nettoyé:
    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
     
    POUR i = 1 A 10
    	SI TABLE_CODIM1.SELECTION[i] ALORS
    		POUR j=1 A TableOccurrence(CODIM2_SUS)
    			SI CODIM2_SUS.SELECTION[j] ALORS
     
    // Contrôle si l'article en création existe déjà dans la base de données	
    variable est une chaîne
    Suffixe est une chaîne
    NouveauCode est une chaîne
     
    sRequete est une chaîne="SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE '"+SAI_ART_CODE+"%'  ORDER BY ART_CODE DESC "
    //SI EnModeTest("Trace 1") ALORS Trace(sRequete)
    SI	SQLExec(sRequete,"REQ") ALORS
    	SI	SQLAvance("REQ") = 0 ALORS
    		variable=SQLLitCol("REQ", 1)
    		Suffixe=ExtraitChaîne(variable,2,"\") // Récupération de ce qu'il y a après l'anti-slash
    		Suffixe=Val(Suffixe)+1 	// Incrémente de 1 l'UVC
    		NouveauCode=ExtraitChaîne(variable,1,"\")+"\"+Suffixe // Constitution de la nouvelle UVC
     
    		SINON
    			NouveauCode=SAI_ART_CODE+"\1"
    		FIN
     
    //Sélectionne le dernier code barre
    sVariable_EAN est une chaîne
    préfixe_AEN est une chaîne
    nouveauCode_AEN est une chaîne
    Cle est une chaîne
    Total est un entier
    Requete est une chaîne="SELECT MAX(ART_CODEBARRE) FROM ARTICLES " 
    SI SQLExec(Requete, "REQ1") ALORS
    	SI SQLAvance("REQ1")=0 ALORS
    		sVariable_EAN=SQLLitCol("REQ1", 1)
    		préfixe_AEN=Gauche(sVariable_EAN,12)
    		préfixe_AEN=Val(préfixe_AEN)+1
    	    FIN
    	 	FIN
     
    //calcul du caractère de contrôle
    POUR ii = 1 A Taille(préfixe_AEN)        //Code est les 12 premiers caractères du code barre
    SI EstPair(ii) ALORS
    	Total+=Val(préfixe_AEN[[ii]])*3
    SINON
    	Total+=Val(préfixe_AEN[[ii]])
    FIN
    FIN
    Cle = ((PartieEntière(Total/10)+1)*10)-Total
    SI Cle = 10 ALORS
    	Cle = 0
    FIN  
    nouveauCode_AEN=0+préfixe_AEN + Cle 
     
     
     
    				// Si les données n'existe pas alors INSERT INTO ajoute les données 
    	Requete1 est une chaîne="INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_DATE_CREATION,ART_DATE_MODIFICATION,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) "+...
    	"VALUES('"+NouveauCode+"','"+NouveauCode+"','"+SAI_ART_NOMAPPEL+"','"+TABLE_CODIM1.COL_CODE[i]+"','"+CODIM2_SUS.SUS_CODE[j]+"','"+SAI_CREATION+"','"+SAI_DATE_MODIF+"','"+SAI_ART_LIBRE1+"','"+SAI_ART_NOM+"','"+COMBO_COLLEC+"','"+COMBO_ART_FOUR+"','"+COMBO_ART_MARQUE+"','"+COMBO_COMPOSITION+"','"+nouveauCode_AEN+"','"+COMBO_ORIGINE1+"','"+COMBO_TYPE1+"','"+SAI_EPA+"','"+SAI_EPVD4+"') "
    	SI EnModeTest("Trace 2") ALORS Trace(Requete1) 
    	SI	SQLExec(Requete1,"REQ10") ALORS
     
    			FIN
    				FIN
    					FIN
    						FIN	
    						FIN
    						FIN
    Si tu entends par vider mon fichier, vider ma table, je ne peut pas dû que cette table possède déjà 15 000 articles provenant d'un ERP avec lequel mon application est reliée par passerelle.

    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


  19. #19
    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
    Merci et la trace est celle d'avant ou il y en a une nouvelle ?
    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

  20. #20
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    954
    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 : 954
    Points : 766
    Points
    766
    Par défaut
    Non c'est les mêmes, j'ai simplement enlevé celles qui ne donne rien en soit

    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 1 sur 3 123 DernièreDernière

Discussions similaires

  1. problème sur requete insert
    Par shadowmoon dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/06/2005, 11h46
  2. ASP + pb requete Insert
    Par cell dans le forum ASP
    Réponses: 4
    Dernier message: 22/04/2005, 11h15
  3. petite aide sur une requete INSERT INTO
    Par bonneti dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2005, 15h17
  4. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32
  5. effectuer une requete insert avec 'values' ET 'select'
    Par delaio dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/08/2004, 19h05

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