PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Requête vers mémoire mysql
Requête vers mémoire mysql
Iniciado por grego30, 29,mar. 2020 18:03 - 6 respuestas
Miembro registrado
31 mensajes
Publicado el 29,marzo 2020 - 18:03
Bonjour à tous,

J’ai une requête sur une BDD mysql qui est exécutée via sqlexec

Cette requête renvoi environ 130 colonnes et 500 lignes.

Est-il possible de charger le résultat de cette requête vers une structure ou autre mais qui m’éviterai une parcours traditionnel du type sqlpremier, affectation des valeurs dans un tableau , Sqlsuivant. Etc..

L’équivalent de la fonction sqltable mais pas vers un champ mais faire une structure ou autre variable mémoire?

Merci de votre aide.

Bon week-end
Miembro registrado
170 mensajes
Publicado el 29,marzo 2020 - 18:41
Salut,

Je n'utilise pas sqlexec, mais la doc dit :

"
Récupération du résultat de la requête
Le résultat de la requête peut être :

Transféré dans une table ou une liste (fonction SQLTable).
Transféré dans des champs ou des variables (fonction SQLAssocie).
Récupéré ligne par ligne (fonction SQLFetch).
"
Donc tu peux parcourir le résultat de ta requête ligne par ligne (fonction SQLFetch) et pour chaque ligne tu fais :

maLigne est un stResultat dynamique

AVEC maLigne
.maColonne1 = maRequete.colonne1
...
.maColonneN = maRequete.colonneN
FIN


en ayant pris soin de déclarer ta structure auparavant en décrivant toute les colonnes

stResultat est une structure
maColonne1 est un entier
maColonne2 est une chaîne
...
maColonne500 est un booléen
FIN


Bon courage :p

--
--
Jean-Jacques
Miembro registrado
170 mensajes
Publicado el 29,marzo 2020 - 18:44
Oups, j'ai oublié de préciser de stocker tout ça dans un tableau

tabResultat est un tableau dynamiquedynamique de stResultat


et dans la boucle précédente :

maLigne est un stResultat dynamique

AVEC maLigne
.maColonne1 = maRequete.colonne1
...
.maColonneN = maRequete.colonneN
FIN

tabResultat.ajoute(maLigne)


--
--
Jean-Jacques
Miembro registrado
31 mensajes
Publicado el 29,marzo 2020 - 19:59
Bonjour et merci e votre réponse.

C'est bien ce que je fais aujourd'hui mais cela m'impose de réaliser l'affectation colonne / colonne sqllit

Il y a 130 colonne dans ma requête, donc il faut a chaque réaliser l'affectation
variable1=Col1
variable2=Co2
etc et ça 130 fois.

Comme j'ai déjà pris le temps de créer un structure, j'aurai bien voulu éviter cette affectation manuelle.

D'autant plus que cela prend quand même un peu de temps en exécution.

Merci
Miembro registrado
182 mensajes
Publicado el 30,marzo 2020 - 07:57
Bah sinon, si le tableau de la structure correspond exactement aux colonnes renvoyées, on peut utiliser dans ce cas FichierVersTableau tout simplement.
Miembro registrado
4.362 mensajes
Publicado el 30,marzo 2020 - 08:53
Bonjour,
C'est justement ça le problème, grego30 veut l'équivalent pour une requête exécutée via SQLexe et non Via HexécuteRequêteSQL

--
Il y a peut être plus simple, mais, ça tourne
Publicado el 30,marzo 2020 - 09:44
Bonjour et merci e votre réponse.

C'est bien ce que je fais aujourd'hui mais cela m'impose de réaliser
l'affectation colonne / colonne sqllit

Il y a 130 colonne dans ma requête, donc il faut a chaque réaliser
l'affectation variable1=Col1
variable2=Co2
etc et ça 130 fois.

Comme j'ai déjà pris le temps de créer un structure, j'aurai bien voulu
éviter cette affectation manuelle.

D'autant plus que cela prend quand même un peu de temps en exécution.

Merci

Bonjour,
tu peux utiliser des opérateurs d'indirections sur ta structure et une
boucle sur tes sqlcol
Mais l'indirection ça côute un peu en temps de réponse.
sinon si tu veux garder tes instructions en affectations directes, tu
peux utiliser excel pour te générer ton code redondant.

--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus