Bonjour à Tous,
J'ai un problème qui me fait tourner en rond...
Le contexte:
La déclaration des variables et de la connexion à la BDD
- J'interroge la table STOCKS avec comme conditions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 gsSTOC_EMPL est une chaîne gsART_COL est une chaîne gsART_NOMAPPEL est une chaîne gsART_CODIM1 est une chaîne gsSTOC_ARTICLE est une chaîne gsART_CODIM2 est une chaîne gsValeur est une chaîne gsValeur1 est une chaîne gsValeur2 est une chaîne gnConn1 est un entier = SQLConnecte("Dominique_LOGITRACK","sa","Logitrack") gnConn2 est un entier = SQLConnecte("Dominique_LOGITRACK","sa","Logitrack")
a) La saison
b) Le type de dépôt (selon CLIENTS ou BOUTIQUES)
De cette requête, j'affiche le résultat dans une table mémoire "TABLE_MEMO"
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 sRequeteGénérale est une chaîne="SELECT STOC_EMPLACEMENT,ART_COLLECTION,STOC_ARTICLE,ART_NOMAPPEL, ART_CODIM1,ART_CODIM2 "+... "FROM STOCKS, ARTICLES,EMPLACEMENTS "+... "WHERE ART_CODE=STOC_ARTICLE AND EMPL_NOM=STOC_EMPLACEMENT AND EMPL_TYPE = '"+COMBO_DEPOT..ValeurAffichée+"' AND ART_COLLECTION = '"+COMBO_SAISON..ValeurAffichée+"' "+... "GROUP BY ART_NOMAPPEL, ART_CODIM1,EMPL_NOM,STOC_ARTICLE,ART_CODIM2,STOC_EMPLACEMENT,ART_COLLECTION "+... "ORDER BY ART_NOMAPPEL, ART_CODIM1 ASC " SI EnModeTest() ALORS Trace(sRequeteGénérale) //La boucle récupère les variables (colonnes fixes de la requête mère) SI SQLExec(sRequeteGénérale,"reqGénérale") ALORS TANTQUE SQLAvance("reqGénérale")=0 gsSTOC_EMPL=SQLLitCol("reqGénérale", 1) gsART_COL=SQLLitCol("reqGénérale", 2) gsSTOC_ARTICLE=SQLLitCol("reqGénérale", 3) gsART_NOMAPPEL=SQLLitCol("reqGénérale", 4) gsART_CODIM1=SQLLitCol("reqGénérale", 5) gsART_CODIM2=SQLLitCol("reqGénérale", 6) SQLChangeConnexion(gnConn1) // gsValeur est une chaine sRequeteQTE est une chaîne="SELECT STOC_QUANTITE FROM STOCKS, ARTICLES "+... "WHERE ART_CODE=STOC_ARTICLE "+... "AND ART_NOMAPPEL='"+gsART_NOMAPPEL+"' AND ART_CODIM1='"+gsART_CODIM1+"' AND STOC_ARTICLE = '"+gsSTOC_ARTICLE+"' " SI EnModeTest() ALORS Trace(sRequeteQTE) SI SQLExec(sRequeteQTE,"ReqQTE") ALORS SI SQLAvance("ReqQTE")=0 ALORS gsValeur=SQLLitCol("ReqQTE", 1) FIN FIN TableAjouteLigne(TABLE_MEMO,gsSTOC_EMPL,gsART_COL,gsSTOC_ARTICLE,gsART_NOMAPPEL,gsART_CODIM1,gsART_CODIM2,gsValeur) SQLChangeConnexion(gnConn2) FIN SINON SQLInfoGene("reqGénérale") Trace("Erreur SQL R1 : ", SQL.MesErreur) FIN
De là:
a) Je créais un numéro de mémorisation d'inventaire et l'insère dans la table INVENTAIRES_COMPTEUR
b) Je "mémorise" ces données dans la table INVENTAIRES.
"Mémorise = j'insère les données de la table mémoire "TABLE_MEMO"
En dernier lieu, j'affiche le détail de l'INSERT:
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 SI OuiNon("Veuillez confirmer la création de la mission")=Vrai ALORS Sablier(Vrai) // CREATION DU NUMERO DE MISSION sVariable1 est une chaîne sSuffixe1 est une chaîne sDate est une chaîne=DateSys() NouveauCode est une chaîne sREQ est une chaîne="SELECT MAX(INVENTAIRE_NUM) FROM INVENTAIRES_COMPTEUR " SI EnModeTest() ALORS Trace("Dernier num Compteur - ", sREQ) SI SQLExec(sREQ,"REQ1") ALORS SI SQLAvance("REQ1") = 0 ALORS sVariable1=SQLLitCol("REQ1", 1) sVariable1=ExtraitChaîne(sVariable1,3,"-") sSuffixe1=Gauche(sVariable1,5) sSuffixe1=NumériqueVersChaîne(Val(sSuffixe1)+1,"05d") NouveauCode="INV"+"-"+sDate+"-"+sSuffixe1 // Constitution du nouveau numéro FIN SINON NouveauCode="INV"+"-"+sDate+"-"+"00001" FIN SQLFerme("REQ1") FIN sReqCompteur est une chaîne="INSERT INTO INVENTAIRES_COMPTEUR (INVENTAIRE_NUM) VALUES ('"+NouveauCode+"') " SI EnModeTest() ALORS Trace("Création Compteur - ",sReqCompteur ) SI SQLExec(sReqCompteur,"ReqCompteur") ALORS FIN //SELECTION DE TOUTES LES LIGNES DE LA TABLE POUR TOUTE LIGNE DE TABLE_MEMO TABLE_MEMO.SELECTION=Vrai FIN SQLChangeConnexion(gnConn1) sHeure est une chaîne=HeureSys() sSite est une chaîne="PANTIN" sPropriétaire est une chaîne="APOSTROPHE" sEtat est une chaîne="1" i est un entier //INSERTION DES LIGNES DANS LA TABLE DES MISSIONS POUR i = 1 A TableOccurrence(TABLE_MEMO) sRequêteMission est une chaîne sRequêteMission="INSERT INTO INVENTAIRES(INVE_NUM,INVE_SITE,INVE_PROPRIETAIRE,INVE_EMPLACEMENT,INVE_ARTICLE,INVE_QTE_MEMO,INVE_ETAT,INVE_DATE_MEMO,INVE_HEURE_MEMO) "+... "VALUES ('"+NouveauCode+"','"+sSite+"','"+sPropriétaire+"','"+TABLE_MEMO.COL_EMPLACEMENT[i]+"','"+TABLE_MEMO.COL_UVC[i]+"','"+TABLE_MEMO.COL_QUANTITE[i]+"','"+sEtat+"','"+DateSys()+"','"+sHeure+"') " SI EnModeTest() ALORS Trace(sRequêteMission) SI SQLExec(sRequêteMission,"ReqMission") ALORS FIN FIN SQLFerme("ReqMission") SQLChangeConnexion(gnConn2) //PASSAGE AUTOMATIQUE A L'ONGLET N°3 ONG_Onglet1=3 Sablier(Faux)
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 sRequêteMémorisé est une chaîne sRequêteMémorisé="SELECT INVE_NUM,INVE_SITE,INVE_PROPRIETAIRE,INVE_EMPLACEMENT,INVE_ARTICLE,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,INVE_QTE_MEMO,INVE_DATE_MEMO "+... "FROM INVENTAIRES,ARTICLES WHERE ART_CODE=INVE_ARTICLE "+... "GROUP BY INVE_NUM,INVE_SITE,INVE_PROPRIETAIRE,INVE_EMPLACEMENT,INVE_ARTICLE,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,INVE_QTE_MEMO,INVE_DATE_MEMO " SI EnModeTest() ALORS Trace(sRequêteMémorisé) SI SQLExec(sRequêteMémorisé,"ReqMémorisé") ALORS SI SQLTable("ReqMémorisé",TABLE_MEMO1) ALORS FIN SINON SQLInfoGene("ReqMémorisé") Trace("Erreur SQL R1 : ", SQL.MesErreur) FIN SQLFerme("ReqMémorisé")
LE PROBLEME:
Je possède deux type de dépôt:
a) R-CLI-PIK pour CLIENTS
b) R-BOU-PIK pour BOUTIQUES.
Lorsque je sélectionne R-CLI-PIK dans la combo, tout va bien et tout fonctionne, par contre lorsque je sélectionne R-BOU-PIK, l'INSERT ne se fait pas.
Le plus curieux est que si je prend le trace et que je la test, cela fonctionne.
Je fais appel à vous, car je dois être dessus depuis trop longtemps et je ne vois absolument pas ou est mon problème.
Par avance merci pour votre aide éventuel.
Et très bonne journée à Tous
Partager