si c'est une requete paramétrée, tous les paramètres ne sont peut être pas connu dès le départ. ce n'est pas gênant en soit.
Ca devrait fonctionner. Ca m'arrive souvent d'executer plusieurs fois d'affilé la meme requete et je ne constate pas ca.Cliquez pour agrandir...
-
Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !Rejeter la notice
WD Requêtes
Discussion dans 'Windev' créé par Fatehb71, Juil 31, 2018.
il faut voir le code de la boucle et le code de la requête pour comprendre ce qui cloche.
mais
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
a déjà tout remplacé par hfiltre. donc difficile de répondre sans plus de détail.Voila à quoi ressemble le traitement
nNombreTotal est un entier = 0
POUR i = 1 _A_ Table_Test..Occurrence
REQ_Test.Parm1 = COL_1
REQ_Test.Parm2 = COL_2
REQ_Test.Parm3 = COL_3
REQ_Test.Parm4 = COL_4
SI HExécuteRequête(REQ_Test, hRequêteDéfaut) ALORS
HLitPremier(REQ_Test)
TANTQUE PAS HEnDehors(REQ_Test)
nNombreTotal += REQ_Test.Nombre
HLitSuivant(REQ_Test)
FIN
HLibère(REQ_Test)
FIN
FIN
Avec Le nombre de ligne de la table dépasse 2000
J'ai un bouton si Je clic dessus j'exécute ce traitement
1er clic, bien
2eme clic bien
3eme clic : au niveau de HExécuteRequête(REQ_Test, hRequêteDéfaut) prends du temps
avec HFiltre ou en créant une requete SQL texte avec HexecuteRequeteSQL et les même paramètres la même boucle l’exécution de HExecuteRequete SQL marche très bien même après 10 clics
Pourquoi Hlibère ? Il ne sert a RIEN ici.
Pour info sur le but de Hlibère (cf doc pcsoft) :
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
) d'un fichier de données en enregistrements supprimés. La place occupée par les enregistrements rayés est ainsi libérée et pourra être réutilisée lors des prochains ajouts (fonctionBonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
).Cliquez pour agrandir...
Je ferais des tests de mon coté... mais je sais déjà qu'il m'arrive de lancer plusieurs fois la même requete et je n'ai jamais eu ce soucis ..
HFSQL est local ou distant ?
Voila à quoi ressemble le traitement
nNombreTotal est un entier = 0
POUR i = 1 _A_ Table_Test..Occurrence
REQ_Test.Parm1 = COL_1
REQ_Test.Parm2 = COL_2
REQ_Test.Parm3 = COL_3
REQ_Test.Parm4 = COL_4
SI HExécuteRequête(REQ_Test, hRequêteDéfaut) ALORS
HLitPremier(REQ_Test)
TANTQUE PAS HEnDehors(REQ_Test)
nNombreTotal += REQ_Test.Nombre
HLitSuivant(REQ_Test)
FIN
HLibère(REQ_Test)
FIN
FIN
Avec Le nombre de ligne de la table dépasse 2000
J'ai un bouton si Je clic dessus j'exécute ce traitement
1er clic, bien
2eme clic bien
3eme clic : au niveau de HExécuteRequête(REQ_Test, hRequêteDéfaut) prends du temps
avec HFiltre ou en créant une requete SQL texte avec HexecuteRequeteSQL et les même paramètres la même boucle l’exécution de HExecuteRequete SQL marche très bien même après 10 clicsCliquez pour agrandir...
POUR i = 1 _A_ Table_Test..Occurrence
par
pour tout Table_Test.
pareil
tu peut remplacer plusieurs ligne
HLitPremier(REQ_Test)
TANTQUE PAS HEnDehors(REQ_Test)
nNombreTotal += REQ_Test.Nombre
HLitSuivant(REQ_Test)
par
pour tout req_test
nNombreTotal += REQ_Test.Nombre
a tester et voir si cela améliore la boucle