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 affichage table appli multi poste


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 202
    Points : 79
    Points
    79
    Par défaut Lenteur affichage table appli multi poste
    Bonjour,

    Je suis débutant en Windev et je ne comprends pas pourquoi j'ai le problème suivant avec Windev qui normalement devrait être performant.

    J'ai developpé une petite appli (avec l'aide RAD) qui affiche dans une table les données contenues dans un fichier HF qui est localisé sur un disque réseau Z:
    Il n'y a pas bcp de données (environ 1000 enregistrement de 750 octets).
    J'ai installé l'appli sur 2 postes reliés au disque Z: en wifi 54Mb.
    Le contenu de la table est simplement relié au fichier; il n'y a pas de code de programmation.

    Mon Problème:
    Lorsque j'exécute l'appli sur le 1er poste (bien installée en local), tout va bien; l'affichage de la table est très rapide tout comme les modifs des enregistrements par fenetre 'fiche'.
    Lorsque j'exécute l'appli sur le 2ème poste (installée en local), au début la table s'affiche bien mais dès que je fais une modif sur un des enregistrements du fichier alors tout devient lent sur les 2 postes.
    Le 'Tableaffiche(Table,tacourantbandeau)' prend au moins 10 secondes alors qu'auparavant il prenait 1 seconde max.

    J'ai réussi à gagner du temps en cochant dans le contenu de la table 'Accès direct' au lieu de 'chargé en mémoire' mais je n'ai plus les filtres et tris dans les colonnes !

    Merci par avance si vous avez des solutions ou de me dire ce que je ne fais pas comme il faut pour une utilisation multi poste.

  2. #2
    Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2011
    Messages : 18
    Points : 49
    Points
    49
    Par défaut
    Bonjour, problème de debit connexion reseau. 54mb c'est peu. Faut augmenter tton débit.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 914
    Points : 1 496
    Points
    1 496
    Par défaut
    Bonjour
    Le plus rapide: travailler en C/S et/ou avec des requêtes avec la constante hModifieFichier

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 202
    Points : 79
    Points
    79
    Par défaut
    Alors...
    J'ai redeveloppé mon appli en Client/serveur (dur dur...)

    J'ai réussi à faire fonctionner mes 2 postes avec leur appli connectée à un serveur après avoir quand même galéré à cause des 'pare feu' (j'ai du les désactiver).

    Donc toujours avec ma connexion Wifi 54mbps, depuis n'importe quel poste client et pour la même requete qui affiche le résultat directement dans sa table reliée, j'obtiens :
    - avant avec mon ancienne appli fichier HF sur disque réseau: affichage de la table après 4 secondes.
    - après avec mon appli en C/S: affichage de la table après 300ms !!!!

    Voila, ce test vous convaincra de développer en C/S.

    D'après vos expériences, j'aimerai savoir s'il y a des inconvenients à developper en C/S et quels sont les avantages ?

    Il me reste à régler le problème des 'pare feu' sur mes machines et serveur; merci si vous pouvez m'aider pour ces satanés 'pare feu' (rappel je suis débutant) ?

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 914
    Points : 1 496
    Points
    1 496
    Par défaut
    Bonjour
    Personellement j'utilise toujours C/S, surtout avec Internet. Mais comme les fichiers sont les même je peux aussi les utiliser en local.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    SI sServidor = "local" ALORS
     // Décrire la nouvelle connexion
     HDécritConnexion("sConexion", "", "", sDirDatos, "", hAccèsHF7, hOLectureEcriture, "")
     SI HOuvreConnexion("sConexion") = Vrai ALORS
      SI HChangeConnexion(sFichero, "sConexion") ALORS
       //HErreurInfo()
      SINON
       HErreurInfo()
      FIN
      bConnexionDistante = Faux
     SINON
      HErreurInfo()
     FIN
    SINON
     // Paramètres de la connexion
     SELON sProvider
      CAS "hAccèsHF7"
       sConexion..Provider = hAccèsHF7
      CAS "hAccèsHFClientServeur"
       sConexion..Provider = hAccèsHFClientServeur
      CAS "hOledbSQLServer"
       sConexion..Provider = hOledbSQLServer
      CAS "hOledbAccess97"
       sConexion..Provider = hOledbAccess97
      CAS "hOledbAccess2000"
       sConexion..Provider = hOledbAccess2000
      CAS "hAccèsNatifXBase"
       sConexion..Provider = hAccèsNatifXBase
      CAS "hAccèsNatifMySQL"
       sConexion..Provider = hAccèsNatifMySQL
      CAS "hAccèsNatifSQLServer"
       sConexion..Provider = hAccèsNatifSQLServer
      CAS "hAccèsNatifXML"
       sConexion..Provider = hAccèsNatifXML
      CAS "hODBC"
       sConexion..Provider = hODBC
      AUTRE CAS
     
     FIN
     sConexion..Utilisateur = sUsuario
     sConexion..MotDePasse = sPassword
     sConexion..Serveur = sServidor
     sConexion..BaseDeDonnées = sBaseDatos
     sConexion..Cryptage = hCryptageNon
     sConexion..Accès = hOLectureEcriture 
     sConexion..InfosEtendues = "Infos étendues" 
     sConexion..OptionsCurseur = hCurseurClient 
     sConexion..Compression = Vrai
     
     // Ouverture de la connexion
     SI HOuvreConnexion(sConexion) = Vrai ALORS
      HChangeConnexion(sFichero, sConexion) 
      bConnexionDistante = Vrai
     SINON
      bConnexionDistante = Faux
      SI EnModeTest() ALORS
       Trace("Mode Test. Base de Données en local.")
      SINON
       Trace("Attention, Base de Données en local.")
       EnvoyerGmail(......)
      FIN
     FIN
    FIN

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Pour le pare-feu, c'est le port 4900 qu'il faut autoriser sur ton serveur.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 202
    Points : 79
    Points
    79
    Par défaut
    Merci à tous pour vos aides.

    Je pense donc développer en C/S.

    Je voulais savoir qu'elle était la meilleure méthode (rapidité d'affichage et esthétisme) pour l'affichage des données filtrées d'un tres gros fichier dans une table ?

    1) une table relié à mon fichier pour laquelle j'éxecute:
    HFiltre(MonFichier,...)
    TableAffiche(MaTable,tainit)

    2) une table reliée à une requéte sur mon fichier pour laquelle j'éxecute:
    HexecuteRequete(MaRequete,hmodifiefichier)
    TableAffiche(MaTable,tainit)

    3) autre solution ?

    Merci par avance de vos conseils.

  8. #8
    Membre du Club
    Homme Profil pro
    IT Supporter
    Inscrit en
    Juillet 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : IT Supporter
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 59
    Points : 61
    Points
    61
    Par défaut
    salut davcaz!
    Je suis aussi débutant comme toi dans windev!
    je m'en sors bien lorsqu'il s'agit de bosser en mono poste! Pour passer en multi poste c'est bien ma galère! Si tu peux me dire comment tu as pu connecter ton application une base HF sur un lecteur réseau Z! As tu crée un ODBC ? si oui , comment tu as fait pour que ton Windev se connecte via l'odbc, si non , comment tu as connecté ton code windev à ce lecteur réseau ? Pendant que j'y suis, C/S c'est C Sharp ou ça veut dire autre chose?
    Merci d'avance

  9. #9
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Citation Envoyé par kabalonda Voir le message
    C/S c'est C Sharp ou ça veut dire autre chose?
    Ca veut dire Créme Sucrée. Plus sérieusement, C sharp c'est c#. C/S est l'acronyme de Client/Serveur...

    Regarde du coté de l'autoformation, je pense que cela te fera du bien.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 202
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par kabalonda Voir le message
    salut davcaz!
    Je suis aussi débutant comme toi dans windev!
    je m'en sors bien lorsqu'il s'agit de bosser en mono poste! Pour passer en multi poste c'est bien ma galère! Si tu peux me dire comment tu as pu connecter ton application une base HF sur un lecteur réseau Z! As tu crée un ODBC ? si oui , comment tu as fait pour que ton Windev se connecte via l'odbc, si non , comment tu as connecté ton code windev à ce lecteur réseau ? Pendant que j'y suis, C/S c'est C Sharp ou ça veut dire autre chose?
    Merci d'avance
    Je ne suis pas très fort mais pour déporter tes fichiers sur le disque Z:

    - depuis le menu Projet -> Description du projet, dans la partie fichier, cocher 'répertoire ci dessous' et taper ton chemin Z:

    - lors de la création de l'éxécutable, spécifier le chemin Z: pour les fichiers de données.

    Après tu mets tes exécutables sur les postes clients qui doivent impérativement être relié au disque Z:

    Enfin, C/S = Clent / Serveur

  11. #11
    Membre du Club
    Homme Profil pro
    IT Supporter
    Inscrit en
    Juillet 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : IT Supporter
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 59
    Points : 61
    Points
    61
    Par défaut
    merci frenchsting pour la crème sucrée, c'est juste une question d'en avoir le cour net!
    et merci davcaz pour avoir parlé de ta méthode, je pense que tu dois savoir ce que veut dire ODBC ou si non informe toi , peut être tu comprendras ma préoccupation.

    Merci @ tous !

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par davcaz Voir le message
    Merci à tous pour vos aides.

    Je pense donc développer en C/S.

    Je voulais savoir qu'elle était la meilleure méthode (rapidité d'affichage et esthétisme) pour l'affichage des données filtrées d'un tres gros fichier dans une table ?

    1) une table relié à mon fichier pour laquelle j'éxecute:
    HFiltre(MonFichier,...)
    TableAffiche(MaTable,tainit)

    2) une table reliée à une requéte sur mon fichier pour laquelle j'éxecute:
    HexecuteRequete(MaRequete,hmodifiefichier)
    TableAffiche(MaTable,tainit)

    3) autre solution ?

    Merci par avance de vos conseils.

    Je suis au même stade que toi, je suis en train d'essayer d'améliorer mes softs pour une utilisation en C/S ce qui j'avoue tourne beaucoup mieux pour une utilisation en réseau que sans C/S et la je me demande aussi ce qui est plus rapide pour par exemple remplir un tableau de données:

    1) Les fonctions Hlitrecherche() hlitpremier hlitsuivant
    2) Lier le tableau a une requete intégré
    3) HexecuterequeteSQL a l'initialisation


    A t il déja été avéré qu'une de ces trois solutions est la plus rapide ?

Discussions similaires

  1. [WD17] multi-postes et raffraichissements de tables, de fiches etc
    Par davcaz dans le forum WinDev
    Réponses: 2
    Dernier message: 08/11/2012, 12h28
  2. [WD14] Lenteur affichage sur table/REQ
    Par buzz68180 dans le forum WinDev
    Réponses: 13
    Dernier message: 24/11/2009, 14h21
  3. Configuration d'appli multi-serveurs
    Par j2ee_laurent dans le forum Struts 1
    Réponses: 5
    Dernier message: 04/10/2004, 20h03
  4. Choix de SGBD et Middleware pour logiciel multi-postes.
    Par Benjamin GAGNEUX dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/09/2004, 12h39

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