PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Sous-requête SQL - Windev 9 + AS400
Sous-requête SQL - Windev 9 + AS400
Débuté par serge.mieville, 04 nov. 2005 15:50 - 3 réponses
Posté le 04 novembre 2005 - 15:50
J'ai une requête SQL liée à une Table.
Mar requête s'exéqute très bien sur l'AS400 mais malheureusement pas à travers Windev!

Peut-on me renseigner s'il est possible de lier une Table à une requête utilisant une sous requête.


voici ma requête :

select ARCLEUNIK ,
NOCOL,
NOPACK,
DESART_001,
AECLEUNIK,
KEYCATPV
from
(Select MAX(SR2.DATDEB) DATDEB,
SR1.ARCLEUNIK ARCLEUNIK ,
SR1.NOCOL AS NOCOL,
SR1.NOPACK AS NOPACK,
SR1.DESART_001 AS DESART_001,
SR1.AECLEUNIK AS AECLEUNIK,
SR1.KEYCATPV
FROM ARTICLE SR1, ARTART SR2
where SR1.MBCLEUNIK = 435
AND SR1.ARTACTIF = 1
AND SR2.ARCLEUNIK = SR1.ARCLEUNIK
AND SR2.DATDEB <= '2005-12-01'
GROUP BY
SR1.ARCLEUNIK,
SR1.NOCOL,
SR1.NOPACK,
SR1.DESART_001,
SR1.AECLEUNIK,
SR1.KEYCATPV
) REQUDATE


voici l'erreur qui m'est retournée lors du GoTest

Le champ 'Table_Test' n'a pas pu s'initialiser, car il a rencontré l'erreur Hyper File suivante :
=============================
Erreur de l'accès natif AS400.
Numéro d'erreur = 1

Query execution failed.
Error category 1 (SQL)
Error code 0
Message:
Full message:

=============================


**********************************************

Informations techniques

Projet : KOOKA_Prix

Dump de l'erreur du module <WD90OBJ.DLL> <9.00Dqv>.

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 10085

- Code erreur WD55 : 3001

- Pas de code d'erreur système

- Pas de message d'erreur système

- Que s'est-il passé ?

Le champ 'Table_Test' n'a pas pu s'initialiser,
car il a rencontré l'erreur Hyper File suivante :
=============================
Erreur de l'accès natif AS400.
Numéro d'erreur = 1

Query execution failed.
Error category 1 (SQL)
Error code 0
Message:
Full message:

=============================

- Pas d'info de debug

- Infos attachées :
EIT_BASECODE : <73001>
EIT_NATIVECODE : <1>
EIT_NATIVEMESSAGE : <1 0 >
EIT_LOGICALTABLENAME : <Test>

- Identifiant dans le .err : 10085
Posté le 04 novembre 2005 - 16:47
oui si j'exécute la requête en mode test
et que la case est cochée
"Exécuter avec hRequêteSansCorrection en mode test"
le résultat s'affiche avec tester la Requête.

Par contre lorsque que je lance ma fenêtre qui contient la table liée à la requêt
en mode Go (Test)
là l'erreur se produit ??
Posté le 04 novembre 2005 - 17:20
As tu essayé de mettre hrequetesanscorrection ???
Christian

Serge Miéville a couché sur son écran :
J'ai une requête SQL liée à une Table.
Mar requête s'exéqute très bien sur l'AS400 mais malheureusement pas à
travers Windev!

Peut-on me renseigner s'il est possible de lier une Table à une requête
utilisant une sous requête.


voici ma requête :

select ARCLEUNIK ,
NOCOL,
NOPACK,
DESART_001,
AECLEUNIK,
KEYCATPV
from
(Select MAX(SR2.DATDEB) DATDEB,
SR1.ARCLEUNIK ARCLEUNIK ,
SR1.NOCOL AS NOCOL,
SR1.NOPACK AS NOPACK,
SR1.DESART_001 AS DESART_001,
SR1.AECLEUNIK AS AECLEUNIK,
SR1.KEYCATPV
FROM ARTICLE SR1, ARTART SR2
where SR1.MBCLEUNIK = 435
AND SR1.ARTACTIF = 1
AND SR2.ARCLEUNIK = SR1.ARCLEUNIK
AND SR2.DATDEB <= '2005-12-01'
GROUP BY
SR1.ARCLEUNIK,
SR1.NOCOL,
SR1.NOPACK,
SR1.DESART_001,
SR1.AECLEUNIK,
SR1.KEYCATPV
) REQUDATE


voici l'erreur qui m'est retournée lors du GoTest

Le champ 'Table_Test' n'a pas pu s'initialiser, car il a rencontré l'erreur
Hyper File suivante : =============================
Erreur de l'accès natif AS400.
Numéro d'erreur = 1

Query execution failed.
Error category 1 (SQL)
Error code 0
Message:
Full message:

=============================


**********************************************

Informations techniques

Projet : KOOKA_Prix

Dump de l'erreur du module <WD90OBJ.DLL> <9.00Dqv>.

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 10085

- Code erreur WD55 : 3001

- Pas de code d'erreur système

- Pas de message d'erreur système

- Que s'est-il passé ?

Le champ 'Table_Test' n'a pas pu s'initialiser,
car il a rencontré l'erreur Hyper File suivante :
=============================
Erreur de l'accès natif AS400.
Numéro d'erreur = 1

Query execution failed.
Error category 1 (SQL)
Error code 0
Message:
Full message:

=============================

- Pas d'info de debug

- Infos attachées :
EIT_BASECODE : <73001>
EIT_NATIVECODE : <1>
EIT_NATIVEMESSAGE : <1 0 >
EIT_LOGICALTABLENAME : <Test>

- Identifiant dans le .err : 10085



--
Bon développement à tous
Christian

cciochir@ _ at _ cmii.fr
Posté le 07 novembre 2005 - 10:04
En fait il semblerait qu'on ne puisse pas lié directement la table à la reqète!

il faut construire la table à l'exécution et garder le mode Sans Correction

Code pour charger la table
------------------------------

Test1.Ref_Modex = 435
Test1.Actif = 1
Test1.Date_Ref = "'2005-12-01'"
Test1.Ref_Modele_Prix = 22220163
Test1.Code_Pays = "'CH'"
Test1.Qte_Unitaire = 1
HExécuteRequête(Test1, gpsConnexion, hRequêteSansCorrection)
SI PAS ErreurDétectée ALORS
ConstruitTableFichier(Table_Dynamique,Test1,taAvecIdAuto+taRemplirTable)
SINON
Erreur("Erreur!" +RC + ErreurDétectée)
FIN

Code de la requète
----------------------
select REQUDATE.ARCLEUNIK ,
REQUDATE.NOCOL,
REQUDATE.NOPACK,
REQUDATE.DESART_001,
REQUDATE.AECLEUNIK,
REQUDATE.KEYCATPV,
ARTART.KEYETATP AS KEYETATP,
ARTART.DATDEB AS DATDEB,
PRIPUBDG.PRI_ATVA AS PRI_ATVA
from
(Select MAX(SR2.DATDEB) DATDEB,
SR1.ARCLEUNIK ARCLEUNIK ,
SR1.NOCOL AS NOCOL,
SR1.NOPACK AS NOPACK,
SR1.DESART_001 AS DESART_001,
SR1.AECLEUNIK AS AECLEUNIK,
SR1.KEYCATPV
FROM ARTICLE SR1, ARTART SR2
where SR1.MBCLEUNIK = {Ref_Modex}
AND SR1.ARTACTIF = {Actif}
AND SR2.ARCLEUNIK = SR1.ARCLEUNIK
AND SR2.DATDEB <= {Date_Ref}
GROUP BY
SR1.ARCLEUNIK,
SR1.NOCOL,
SR1.NOPACK,
SR1.DESART_001,
SR1.AECLEUNIK,
SR1.KEYCATPV
) REQUDATE,
ARTART ARTART,
PRIPUBDG PRIPUBDG
WHERE ARTART.ARCLEUNIK = REQUDATE.ARCLEUNIK
AND ARTART.DATDEB = REQUDATE.DATDEB
AND PRIPUBDG.KEYETATP = ARTART.KEYETATP
AND PRIPUBDG.NOMODPRIX = {Ref_Modele_Prix}
AND PRIPUBDG.KEYPAY = {Code_Pays}
AND PRIPUBDG.QTEDEG = {Qte_Unitaire}