WINDEV16 Requete SQL

Fermé
Joris - 24 janv. 2012 à 09:47
 Joris - 24 janv. 2012 à 09:59
Bonjour,

J'ai un bout de code qui ne veut pas fonctionner.
Le but est en fait d'effectuer une requête SQL pour trier le contenu d'une combo en fonction de la date, sans oublier une jointure.
Le voici :
ListeSupprimeTout({ComboChoix, indChamp})
REQ_TRIDATE est une Source de Données
ChaineSQL est une chaîne="SELECT  *  FROM %1 WHERE %2="+VEHICULESELECT+" ORDER BY %3 DESC"
REQ_TRIDATE = ChaîneConstruit(ChaineSQL,{LeFichier, indFichier},LeFichier + ".IDVEHICULE",LeFichier +"."+ LaDate)
SI HExécuteRequêteSQL(REQ_TRIDATE,hRequêteDéfaut,ChaineSQL) ALORS
	
	POUR TOUT REQ_TRIDATE 
		ListeAjoute({ComboChoix, indChamp}, DateVersChaîne(REQ_TRIDATE.DateControle) + gLien(REQ_TRIDATE+ ".ID" +LeFichier))
	FIN
	
SINON
	Erreur(HErreurInfo())
FIN



Ainsi, le HexécuteRequêteSQL renvoie faux.
Avec le message d'erreur suivant :
Erreur dans le code SQL de la requête <SELECT * FROM CONTROLE WHERE CONTROLE.IDVEHICULE=6 ORDER BY CONTROLE.DateControle DESC>.
Initialisation de la requête impossible.
Fichier %1 inconnu.

J'ai essayé les indirections avec type, sans effet.
La requête sans chaine construit fonctionne, d'où le %1 inconnu.

Pouvez-vous m'éclairer ?

1 réponse

Problème résolu.
C'était très simple au final, juste une erreur d'inattention :
REQ_TRIDATE = ChaineConstruit(ChaineSQL [...])

A la place de :
ChaineSQL = ChaineConstruit(ChaineSQL[...])
SI HexecuteRequeteSQL(REQ_TRIDATE,hrequetedefaut,ChaineSQL)
0