(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
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é)
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
"Roumegou Eric" <Utilise...@fin.msg> a écrit dans le message de news:
mn.ec957d58c...@fin.msg...
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...
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
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.
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
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
Marcel...@managingbusiness.be a écrit :