IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Lenteur remplissage table par programmation (C/S)


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 169
    Points : 47
    Points
    47
    Par défaut Lenteur remplissage table par programmation (C/S)
    Bonjour,

    Je développé un outil sous WinDev 19 dans lequel j'avais quelques lenteurs lors de l'affichage de tables par l'intermédiaire d'une requête paramétrée. J'ai donc tenté de les remplir par programmation. Et la, surprise, encore plus long, mais beaucoup plus long...

    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TableSupprimeTout(TABLE_SansNom2)
     
    HLitRecherche (MOYEN_PREVENTION_RISQUE,IDRISQUE,LISTE_RISQUE,hIdentique) 
     
    TANTQUE HTrouve(MOYEN_PREVENTION_RISQUE)
    	// Traitement sur l' enregistrement de la requête 
    	TableAjoute(TABLE_SansNom2,MOYEN_PREVENTION_RISQUE.DATE_CREATION_MOYEN_PREVENTION_RISQUE) 
    	// lecture de l' enregistrement suivant 
    	HLitSuivant (MOYEN_PREVENTION_RISQUE) 
    FIN

    Il faut en gros 40 secondes pour remplir 800 enregistrements dans la table... Pourtant, ce n'est pas énorme... D'où peut venir mon erreur ?

    Merci pour vos réponses !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Il faut commencer par passer l'analyseur de performance, pour voir quelle ligne prend du temps.
    Cela étant dit, en client/serveur il vaut mieux passer par des requêtes que de boucler sur des hlit*.

    Tatayo.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 169
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    Merci pour ta réponse.

    Quand je lance l'analyseur de performances, c'est l'initialisation de la table qui prend beaucoup de temps.

    Dans le rapport j'ai :

    Fonction appelée                                Appel                 Total
    
    Code du développeur...........................    1    .............  25 s 650
    Hlitsuivant()...................................740  ............. 1,077 s
    Hlitpremier()...................................  1    ............  270 ms
    Tableajoute() ................................  740 ...............  140 ms
    etc

    Il me dit que le plus long c'est "code du développeur" je ne comprend pas trop...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    "Code du développeur", c'est tout sauf les fonctions wLangage.
    Mais quel est le code exact ici ? L'analyseur parle de Hlitpremier, qui n'est pas dans le code que tu nous as montré.

    Tatayo.

  5. #5
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Bonsoir,

    En C/S, il faut passer par des requêtes et les exécuter avec HExecuteRequete et ne pas utiliser les fonctions HLitRecherche etc qui sont gourmande en accès réseau.

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 169
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    Merci pour ces réponses. Je pensais qu'en programmation ça pouvait être plus rapide. Je vais donc rester sur les requêtes paramétrées ! Merci pour ces informations.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD14] Remplir une Table par programmation
    Par nordinen dans le forum WinDev
    Réponses: 1
    Dernier message: 01/04/2011, 19h25
  2. comment ajouter un champ au table par programme delphi
    Par mechatikhaled dans le forum Débuter
    Réponses: 2
    Dernier message: 22/12/2008, 08h55
  3. creer une table par programmation
    Par stefano dans le forum WinDev
    Réponses: 3
    Dernier message: 22/12/2007, 11h57
  4. filtrer une table par programmation
    Par programeur dans le forum Delphi
    Réponses: 2
    Dernier message: 11/01/2007, 12h38
  5. Attacher les tables par programmation
    Par ahouba dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/05/2006, 18h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo