Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

récupérer le résultat d'une requête dans une variable

1,248 views
Skip to first unread message

doclaude

unread,
Aug 29, 2005, 1:02:19 PM8/29/05
to
bonjour à tous
je débute en windev et j'arrive pas à trouver une explication simple pour
récupérer le résultat d'une requête simple de sélection (1 valeur renvoyée
par la requête) dans une variable

(pour pouvoir l'afficher ensuite dans un champ de saisie ou un libellé par
exemple)
du genre
saisie1= résultat de la requête
Si quelqu'un a une idée, elle serait la très bien venue
merci d'avance
claude


Roumegou Eric

unread,
Aug 29, 2005, 1:33:51 PM8/29/05
to
doclaude a formulé la demande :

> bonjour à tous
> je débute en windev et j'arrive pas à trouver une explication simple pour
> récupérer le résultat d'une requête simple de sélection (1 valeur renvoyée
> par la requête) dans une variable

moi je ne débute pas et quand j'ai voulu utiliser la prog officielle
(j'utilise normalement le sql natif) avec les hexecuterequete, je dois
avouer que j'ais eu les memes interrogations.
La doc là dessus est vraiment insuffisante et pas d'exemple complet
avec un ordre select et la façon de récupérer les colonnes de la
requete.
En fait, il faut utiliser HlitPremier et qualifier les colonnes par le
nom de la requete.le nom de la colonne.

Mais il faut croire que cela vient d'une révélation divine puisque
aucun ex pour ce b_a ba.
Voici un code qui pourra t'inspirer


Marequete est une Source de Données
cmd est une chaîne
cmd="SELECT MAX(SPY_DETAIL.IDSPY_DETAIL) AS DER_DETAIL,"+...
" MAX(SPY_DETAIL.IDSPY_ACTION) AS DER_ACTION,"+...
" COUNT(SPY_DETAIL.IDSPY_DETAIL) AS NBR_DETAIL,"+...
" COUNT(distinct SPY_DETAIL.IDSPY_ACTION) AS NBR_ACTION"+...
" FROM SPY_DETAIL"

SI PAS HExécuteRequêteSQL(Marequete,hRequêteDéfaut,cmd) ALORS
Erreur ( "Erreur d' initialisation de la requête" + RC + HErreurInfo
())
RETOUR
FIN

HLitPremier (Marequete)
chretour="<DER_DETAIL>"+Marequete.DER_DETAIL+"</DER_DETAIL>"+RC+...
"<DER_ACTION>"+Marequete.DER_ACTION+"</DER_ACTION>"+RC+...
"<NBR_DETAIL>"+Marequete.NBR_DETAIL+"</NBR_DETAIL>"+RC+...
"<NBR_ACTION>"+Marequete.NBR_ACTION+"</NBR_ACTION>"


>
> (pour pouvoir l'afficher ensuite dans un champ de saisie ou un libellé par
> exemple)
> du genre
> saisie1= résultat de la requête
> Si quelqu'un a une idée, elle serait la très bien venue
> merci d'avance
> claude


--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)


Marcel...@managingbusiness.be

unread,
Aug 29, 2005, 2:19:12 PM8/29/05
to
Salut !


On 29-Aug-2005, "Roumegou Eric" <Utilise...@fin.msg> wrote:

> Marequete est une Source de Données
> cmd est une chaîne
> cmd="SELECT MAX(SPY_DETAIL.IDSPY_DETAIL) AS DER_DETAIL,"+...
> " MAX(SPY_DETAIL.IDSPY_ACTION) AS DER_ACTION,"+...
> " COUNT(SPY_DETAIL.IDSPY_DETAIL) AS NBR_DETAIL,"+...
> " COUNT(distinct SPY_DETAIL.IDSPY_ACTION) AS NBR_ACTION"+...
> " FROM SPY_DETAIL"
>
> SI PAS HExécuteRequêteSQL(Marequete,hRequêteDéfaut,cmd) ALORS
> Erreur ( "Erreur d' initialisation de la requête" + RC + HErreurInfo
> ())
> RETOUR
> FIN
>
> HLitPremier (Marequete)
> chretour="<DER_DETAIL>"+Marequete.DER_DETAIL+"</DER_DETAIL>"+RC+...
> "<DER_ACTION>"+Marequete.DER_ACTION+"</DER_ACTION>"+RC+...
> "<NBR_DETAIL>"+Marequete.NBR_DETAIL+"</NBR_DETAIL>"+RC+...
> "<NBR_ACTION>"+Ma


Il y a peut-être plus simple ...

// definition de la requète et exécution ...
cretour = ""
si hnbenr(marequete) >= 1 alors
cRetour = hrecupereenregistrement(marequete)
fin

bien à vous !
--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477

doclaude

unread,
Aug 29, 2005, 2:31:58 PM8/29/05
to
Bonsoir Eric
un grand merci à toi pour ta réponse rapide et très détaillée (pour un
débutant je tire la langue ...)
on se demande pourquoi wwwwwindev, par ailleurs fort bienf ait, n'a pas
pensé à inclure çà ?
merci encore
:-))
claude

"Roumegou Eric" <Utilise...@fin.msg> a écrit dans le message de news:
mn.ec957d58c...@fin.msg...

Juliane

unread,
Aug 29, 2005, 3:52:49 PM8/29/05
to
Bonjour

Un exemple :

// Définir une variable
Resultat est ... (chaine, entier...)

// Dans la requete, ajouter un alias avec cette variable :
mareq="Select max(MONCHAMP) AS Resultat from MONFICHIER"

// Pour l'utiliser :
SAISIE1 = Resultat

Bon courage

"doclaude" <docl...@free.fr> a écrit dans le message de
news:I9HQe.28040$hV3....@nntpserver.swip.net...

Roumegou Eric

unread,
Aug 30, 2005, 2:35:28 AM8/30/05
to
Le 29/08/2005, Juliane a supposé :

> Bonjour
>
> Un exemple :
>
> // Définir une variable
> Resultat est ... (chaine, entier...)
>
> // Dans la requete, ajouter un alias avec cette variable :
> mareq="Select max(MONCHAMP) AS Resultat from MONFICHIER"
>
> // Pour l'utiliser :
> SAISIE1 = Resultat
>

Peux tu préciser STP car cela m'interresse.
Comment lances-tu la requete (avec un hexecuterequetesql)
il faut bien déclarer une source de données ?
on peut se dispenser de préfixer résultat ?

> Bon courage
>
> "doclaude" <docl...@free.fr> a écrit dans le message de
> news:I9HQe.28040$hV3....@nntpserver.swip.net...
>> bonjour à tous
>> je débute en windev et j'arrive pas à trouver une explication simple pour
>> récupérer le résultat d'une requête simple de sélection (1 valeur renvoyée
>> par la requête) dans une variable
>>
>> (pour pouvoir l'afficher ensuite dans un champ de saisie ou un libellé par
>> exemple)
>> du genre
>> saisie1= résultat de la requête
>> Si quelqu'un a une idée, elle serait la très bien venue
>> merci d'avance
>> claude

Roumegou Eric

unread,
Aug 30, 2005, 2:43:23 AM8/30/05
to
Marcel...@managingbusiness.be a émis l'idée suivante :

Excuse moi Marcel, mais c'est justement parce que cela devait être
considéré comme trop simple que moi j'ai perdu du temps quand j'ai
voulu l'utiliser.
comment définis-tu ta requete ? il faut créer une requete ou peut on la
définir directement (et souvent dynamiquement) dans le code.
Comment l'execute tu ? hexecuterequete j'ai compris que c'était si la
requete était définie et sauveg comme une requete, hexecuterequetesql
si on définissait la requete dans le code.
Comment utilise-t-on le hrecupereenregistrement si on a plusieurs
champs ?

Je te remercie de tes précisions car meme si je n'utilise pas trop
souvent cette forme de prog avec les accès alternatifs, il m'arrivent
pour echanger entre deux bases distinctes d'utiliser les 2 méthodes de
prog, d'où les intérrogations que j'ai eues récemment. Et j'ai trouvé
la doc là dessus très incomplête.

Marcel...@managingbusiness.be

unread,
Aug 30, 2005, 3:56:07 AM8/30/05
to
Salut !
<Message original à la fin du message pour des raisons de lisibilité>

J'utilise tout le temps des requètes sans utiliser le générateur, c'est à
dire que j'écris moi-même mes requètes.
Exemple :

creq est une chaine
sdreq est une source de données
nEnr est un entier
cResultat est une chaine
creq = "select nom, prénom, tel from contacts where zip = '75000'"
si pas hexecuterequetesql(sdreq,creq) alors
// code d'erreur
sinon
// Je vérifie s'il ya des résultats
nenr = hnbenr(sdreq)
si nenr >= 1 alors
// selon le cas, je remplis une table mémoire avec les données
// construittablemémoire(matable,sdreq,taremplirtable)
// Ou j'examine les résultats
//si nenr = 1 alors
// hlitpremier(sdreq)
// cresultat = hrecupereenregistremen(sdreq)
// // cresultat contient <nom>+tab+<prenom>+tab+tel>
// // code d'exploitation
//sinon
// pour tout sdreq
// cresultat = hrecupereenregistremen(sdreq)
// // cresultat contient <nom>+tab+<prenom>+tab+tel>
// // code d'exploitation
// fin
//fin
sinon
info("Il n'y a pas d'enregistrements correspondant à votre demande !")
fin
fin

Je dois avouer que j'utilise intensément les tables mémoires pour afficher
les résultats de mes requètes
En espérant t'avoir aisé ...

--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477

mat

unread,
Aug 30, 2005, 4:23:30 AM8/30/05
to
Juliane wrote:
> Bonjour
>
> Un exemple :
>
> // Définir une variable
> Resultat est ... (chaine, entier...)
>
> // Dans la requete, ajouter un alias avec cette variable :
> mareq="Select max(MONCHAMP) AS Resultat from MONFICHIER"
>
> // Pour l'utiliser :
> SAISIE1 = Resultat


Bonjour,

Cet exemple m'a surpris et en fait il ne fonctionne pas chez moi.
Resultat dans la requête est une rubrique de la requête que je ne peux
pas adresser directement, sans avoir lu l'enregistrement préalablement.

Salutations
mat

Roumegou Eric

unread,
Aug 30, 2005, 5:05:10 AM8/30/05
to
Merci !
ton exemple m'en apprends plus que tout ce qu'il y a dans la doc.
C'est exactement ça qu'il me fallait.


Marcel...@managingbusiness.be a écrit :

degbegnon

unread,
Jul 17, 2013, 5:52:02 AM7/17/13
to
Le lundi 29 Ao�t 2005 � 19:33 par Roumegou Eric :
> doclaude a formul� la demande :
>> bonjour � tous
>> je d�bute en windev et j'arrive pas � trouver une explication
>> simple pour
>> r�cup�rer le r�sultat d'une requ�te simple de
>> s�lection (1 valeur renvoy�e
>> par la requ�te) dans une variable
>>
>
> moi je ne d�bute pas et quand j'ai voulu utiliser la prog officielle
> (j'utilise normalement le sql natif) avec les hexecuterequete, je dois
> avouer que j'ais eu les memes interrogations.
> La doc l� dessus est vraiment insuffisante et pas d'exemple complet
> avec un ordre select et la fa�on de r�cup�rer les colonnes
> de la
> requete.
> En fait, il faut utiliser HlitPremier et qualifier les colonnes par le
> nom de la requete.le nom de la colonne.
>
> Mais il faut croire que cela vient d'une r�v�lation divine
> puisque
> aucun ex pour ce b_a ba.
> Voici un code qui pourra t'inspirer
>
>
> Marequete est une Source de Donn�es
> cmd est une cha�ne
> cmd="SELECT MAX(SPY_DETAIL.IDSPY_DETAIL) AS DER_DETAIL,"+...
> " MAX(SPY_DETAIL.IDSPY_ACTION) AS DER_ACTION,"+...
> " COUNT(SPY_DETAIL.IDSPY_DETAIL) AS NBR_DETAIL,"+...
> " COUNT(distinct SPY_DETAIL.IDSPY_ACTION) AS NBR_ACTION"+...
> " FROM SPY_DETAIL"
>
> SI PAS
> HEx�cuteRequ�teSQL(Marequete,hRequ�teD�faut,cmd)
> ALORS
> Erreur ( "Erreur d' initialisation de la requ�te" + RC +
> HErreurInfo
> ())
> RETOUR
> FIN
>
> HLitPremier (Marequete)
> chretour="
> "
> "
> "
>
>
>
>
>>
>> (pour pouvoir l'afficher ensuite dans un champ de saisie ou un libell�
>> par
>> exemple)
>> du genre
>> saisie1= r�sultat de la requ�te
>> Si quelqu'un a une id�e, elle serait la tr�s bien venue
>> merci d'avance
>> claude
>>
>
>
> --
> Eric Roum�gou
> http://cerbermail.com/?TSoulBerPA
> (cliquez sur le lien ci-dessus pour me contacter en priv�)
Bonjour mon Boss
Je te remercie pour les instructions j'ai pris bonne note et �a marche
Arnauld KANHONOU
B�nin +22966522645
0 new messages