QUERY avec variables

12-12-2006 à 14:16:32
Bonjour,

Existe t'il un moyen de récupérer

le nom des variables utilisé dans un query ?

Merci ....

  • Liens sponsorisés



11-12-2006 à 16:52:39
Bonjour,

Peux-tu être plus clair? Je ne comprends pas ce que tu veux faire...

Passer des variables à un query, je sais que c'est possible, mais récupérer les noms de variables utilisées dans un query...
11-12-2006 à 17:11:32
C'est pour pouvoir lancer un query (avec ou sans variable)

et envoyer le résultat par email ....


Mais c'est bon,avec un RTVQMQRY j'y suis arrivé ....

11-12-2006 à 18:01:19
Il me semble bien que Query/400 , au moins jusqu'à la V5.1, supportait le passage de paramètres (variables) sur l'écran de sélection des enregistrements. Je viens de me rendre compte que ce n'est plus le cas en 5.2. En est-il de même sur vos machines ?
12-12-2006 à 09:23:56
Non pour moi c'est Ok (on est en V5R2M0)
12-12-2006 à 09:37:44
Chez nous cela fonctionne aussi
12-12-2006 à 10:19:35
par contre j'ai un truc bizarre avec les query qui ont une variable alpha =>

quand je lance en interactif la commande suivante :

STRQMQRY QMQRY(SVI/TEST) QMFORM(*SYSDFT) ALWQRYDFN(*YES) SETVAR((B3AKNB '004518'))

ça plante avec le message
Opérandes de l'opérateur = incompatibles.
La commande RUN QUERY a échoué avec SQLCODE -401.

et si je lance cette commande
STRQMQRY QMQRY(SVI/TEST) QMFORM(*SYSDFT) ALWQRYDFN(*YES)

il me demande d'entrer la varible => je rentre '004518'
et la ça passe sans probleme !!


12-12-2006 à 13:43:07
steph,
C'est la galère habituelle avec le QMQRY.
Il faut que tu passes la valeur de ton paramètre alphanumérique avec 3 quotes de part et d'autre de la valeur :
... SETVAR((B3AKNB '''004518'''))

Tu vas avoir un problème encore pire si ta commande STRQMQRY est dans un programme CL. Pour le résoudre, pour chaque variable alphanum à passer en paramètre à la commande STRQMQRY, je définis une variable de travail qui fait 2 caractères de plus de long que la zone d'origine, ceci pour y mettre les quotes:


dcl &dated *char 10 '2006-01-01'
dcl &dd *char 12
dcl &quote *char 1 X'7D'

chgvar &dd ( &quote *cat &dated *tcat &quote )

strqmqry qmqry( monqmqry ) setvar( ( DATEDEB &dd ) )




Cependant, ne confondez pas QMQRY (STRQM) avec QUERY/400 WRKQRY).
Dans WRKQRY, sur l'écran de sélection des enregistrements, vous pouvez a priori passer des paramètres si vous faites précéder le nom de la zone par deux-points ( : )

MAZONE EQ :MAVAR



--Message édité par philippe le 12-12-06 à 13:45:38--
12-12-2006 à 14:16:32
merci pour la reponse ça marche Nichel Chrome

je savais pour le strqmqry dans un prog mais pas en interactif !!
  • Liens sponsorisés