PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Lenteur HLitSuivant
Lenteur HLitSuivant
Débuté par tabornio, 28 oct. 2005 16:36 - 4 réponses
Posté le 28 octobre 2005 - 16:36
Bonjour,

Petit problème de temps de réponse...dans le remplissage d'une tablemémoire.
Aprés analyse des performances le temps de traitement est de 62 secondes, dont 57 secondes sur la fonction HlitSuivant().

TableSupprimeTout(Table_Client)
SI PAS HExécuteRequête(Req_client, hRequêteDéfaut,Parm3, Parm8) ALORS
Erreur("Erreur d'inialisation de la requête"+RC+ErreurInfo())
FIN

//lecture du premier enreg de la requête
HLitPremier(Req_client)
TANTQUE PAS HEnDehors(Req_client)
TableAjouteLigne(Table_Client, Req_client.num, req_client.nom, req_client.prenom)
HLitSuivant(req_client)
FIN
HAnnuleDéclaration(Req_Client)

Si vous avez une idées...merci
Posté le 28 octobre 2005 - 21:33
Utilises avantageusement FichierVersTableMémoire().

Antoine


"Tabor" <tabornio@yahoo.fr> a écrit dans le message de news:
43622246$1@news.pcsoft.fr...

Bonjour,

Petit problème de temps de réponse...dans le remplissage d'une
tablemémoire.
Aprés analyse des performances le temps de traitement est de 62 secondes,
dont 57 secondes sur la fonction HlitSuivant().

TableSupprimeTout(Table_Client)
SI PAS HExécuteRequête(Req_client, hRequêteDéfaut,Parm3, Parm8) ALORS
Erreur("Erreur d'inialisation de la requête"+RC+ErreurInfo())
FIN

//lecture du premier enreg de la requête
HLitPremier(Req_client)
TANTQUE PAS HEnDehors(Req_client)
TableAjouteLigne(Table_Client, Req_client.num, req_client.nom,
req_client.prenom)
HLitSuivant(req_client)
FIN
HAnnuleDéclaration(Req_Client)

Si vous avez une idées...merci
Posté le 28 octobre 2005 - 21:59
Bonjour,

Avec le code suivant :

POUR TOUS Req_client
TableAjoute ....
FIN

Faut voir si les perf sont bonnes.

Voir aussi avec :

ConstruitTableFichier avec TaRemplirTable

Très rapide, il faut adapter ton code en fonction des colonnes.

A+
Posté le 29 octobre 2005 - 16:37
Bonjour,

Ajouter un paramètre complémentaire à HLitPremier, pour avoir

Hlitpremier(Req_client , hSansRafraichir)

La requête n'est ainsi pas ré-executée.

Salutations.

ATGD.
Posté le 01 novembre 2005 - 09:04
Si j'attends beaucoup de lignes, je rends invisible la table mémoire
(conseil PCSOFT) pendant le remplissage.

Sinon j'utilise ce type de code sans soucis, au seul problème que la façon
d'écrire une requête agit sur le temps de réponse. Index sur des champs de
sélection et parfois couper la requête en deux.

Salutations

Christian.


"Tabor" <tabornio@yahoo.fr> a écrit dans le message news:
43622246$1@news.pcsoft.fr...

Bonjour,

Petit problème de temps de réponse...dans le remplissage d'une

tablemémoire.
> Aprés analyse des performances le temps de traitement est de 62 secondes,
dont 57 secondes sur la fonction HlitSuivant().

TableSupprimeTout(Table_Client)
SI PAS HExécuteRequête(Req_client, hRequêteDéfaut,Parm3, Parm8) ALORS
Erreur("Erreur d'inialisation de la requête"+RC+ErreurInfo())
FIN

file://lecture du premier enreg de la requête
HLitPremier(Req_client)
TANTQUE PAS HEnDehors(Req_client)
TableAjouteLigne(Table_Client, Req_client.num, req_client.nom,

req_client.prenom)
HLitSuivant(req_client)
FIN
HAnnuleDéclaration(Req_Client)

Si vous avez une idées...merci