PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Alimenter une table depuis une requete stockée
Alimenter une table depuis une requete stockée
Iniciado por andrianne, 15,abr. 2008 18:41 - 5 respuestas
Publicado el 15,abril 2008 - 18:41
Comment faire pour RECUPERER LE CONTENU de la requète stockée (HF C/S) une fois executée depuis une procédure stockée ??

Je seche sec, très sec.

Si vous pouviez me donner le principe, ce serait un méga GRAND MERCI.

Bon dev à tous.
Publicado el 16,abril 2008 - 00:14
Bonjour adriane,

pour ma part, j'utilisait la serialisation.

exemple :
dans ma fonction client
function toto

bufBufbinaire est un Buffer

QUAND EXCEPTION DANS

bufBufbinaire=HExécuteProcédure(sConnexion,"ProcedureStocker",<variables>)

FAIRE

Info(ExceptionInfo(errComplet))

FIN

Désérialise(<ici en exemple une strucutre qui recoit le
buffer>,bufBufbinaire,psdBinaire)

---------------------

Dans la procedure stocker

bufBufbinaire est un Buffer

Sérialise(<ici en exemple une strucutre qui envo le
buffer>,bufBufbinaire,psdBinaire)

RENVOYER bufBufbinaire



J'espere que ce petit bout de code te permettra d'avance.

Cordialement,


"andrianne" <j.andrianne@sam-bp.com> a écrit dans le message de news:
4804bd28$1@news.pcsoft.fr...


Comment faire pour RECUPERER LE CONTENU de la requète stockée (HF C/S) une
fois executée depuis une procédure stockée ??

Je seche sec, très sec.

Si vous pouviez me donner le principe, ce serait un méga GRAND MERCI.

Bon dev à tous.
Publicado el 16,abril 2008 - 10:33
Merci Eric pour ta réponse.

Je ne comprends pas un point précis.

Dans la procedure stockée :

bufBufbinaire est un Buffer

Marequete.Param1=Param
HexecuteRequete(Marequete,HrequeteDefaut)

*************************************************************
==> C'est ici que je voudrais recuperer le contenu de Marequete Complet
==> Et reprendre le cours du code
==> C'est la que je ne sais pas faire et que je ne comprends pas
Exemple recuperer Marequete.Rub1+ Marequete.Rub1 pour tous
les enrs contenus dans Marequete (sans devoir parcourir ma requete !!)
Je reve eveillé ????
*************************************************************
Sérialise(<structureenvoiebuffer>,bufBufbinaire,psdBinaire)

RENVOYER bufBufbinaire


Si vous pouviez me donner le code manquant, ce serait un méga GRAND MERCI.
Bon dev à tous.
Publicado el 16,abril 2008 - 16:42
Bonjour Adrianne,

En général, les procedures stocké serve à executer un traitement sur le
serveur pour soulager le poste client.

En ce qui concerne ta demande
Il faut parcourir la requete pour la stocker dans un tableau ou une
strucutre que tu rfenvoi en resultat

EX.
#### Dans la procedure stocke
bufBufbinaire est un Buffer
Resultat est une structure
sRubrique1 est un tableau dynamique
nRubrique2 est un tableau dynamique
Fin

//A la suite
ResultatMaRequete est un Resultat
sRubrique1=allouer un tableau dynamique de 0 chaine
nRubrique2=allouer un tableau dynamique de 0 entier


//ensuite la requete
Marequete.Param1=Param
si HexecuteRequete(Marequete,HrequeteDefaut)=vrai ALORS
HLITPREMIER(Marequete)
TANTQUE Htrouve(Marequete)=vrai et Hendehors(Marequete)=faux
tableauajouteligne(ResultatMaRequete:sRubrique1)=Marequete.rubrique1
tableauajouteligne(ResultatMaRequete:nRubrique2)=Marequete.rubrique2
HlitSuivant(Marequete)
FIN
FIN

SérialiseResultatMaRequete,bufBufbinaire,psdBinaire)

RENVOYER bufBufbinaire


### Dans la fonction sur le client
//Je prefere mettre les meme declartations
bufBufbinaire est un Buffer
Resultat est une structure
sRubrique1 est un tableau dynamique
nRubrique2 est un tableau dynamique
Fin

//A la suite
ResultatMaRequete est un Resultat
sRubrique1=allouer un tableau dynamique de 0 chaine
nRubrique2=allouer un tableau dynamique de 0 entier

QUAND EXCEPTION DANS

bufBufbinaire=HExécuteProcédure(sConnexion,"ProcedureStocker",<variables>)

FAIRE

Info(ExceptionInfo(errComplet))

FIN

Désérialise(ResultatMaRequete,bufBufbinaire,psdBinaire)

//Tu na plus qu'a lire tes tableaux

####

Les procedures stocké sont en général utiliser pour des traitements qui sont
lourds sur le poste client.
J'espere que ca peut te permettre d'avance.

Sinon précise ce que tu veux faire car ca reste assez flou.

@+

Cordialement


"andrianne" <j.andrianne@sam-bp.com> a écrit dans le message de news:
480599ec$1@news.pcsoft.fr...

Merci Eric pour ta réponse.

Je ne comprends pas un point précis.

Dans la procedure stockée :

bufBufbinaire est un Buffer

Marequete.Param1=Param
HexecuteRequete(Marequete,HrequeteDefaut)

*************************************************************
==> C'est ici que je voudrais recuperer le contenu de Marequete Complet
==> Et reprendre le cours du code
==> C'est la que je ne sais pas faire et que je ne comprends pas
Exemple recuperer Marequete.Rub1+ Marequete.Rub1 pour tous
les enrs contenus dans Marequete (sans devoir parcourir ma requete !!)
Je reve eveillé ????
*************************************************************
Sérialise(<structureenvoiebuffer>,bufBufbinaire,psdBinaire)

RENVOYER bufBufbinaire


Si vous pouviez me donner le code manquant, ce serait un méga GRAND MERCI.
Bon dev à tous.


Publicado el 17,abril 2008 - 10:28
Merci Eric, tu as répondu à mes intérrogations à 1000 %.

Je te fais un Giga merci parce que j'ai abordé le sujet des procédures stockée hier.
Je décode les facon de faire, les cas d'utilisation avantageux, ... bref je découvre.

Et la ne me manquant qu'un élément : comment retourner un résultat de requete.


Merci encore à toi pour ton aide PRECIEUSE.

Bon dev
Publicado el 30,noviembre 2020 - 23:48
bonjour
je voudrai que vous m'expliquer cette partie jai le meme probleme mais je suis bloqué a ce niveau
sRubrique1 =?? :o


//A la suite
ResultatMaRequete est un Resultat
sRubrique1=allouer un tableau dynamique de 0 chaine
nRubrique2=allouer un tableau dynamique de 0 entier