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

VB 6 et antérieur Discussion :

Origines possibles d'un dépassement de capacité ?


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Points : 67
    Points
    67
    Par défaut Origines possibles d'un dépassement de capacité ?
    Coucoutte

    Je développe un logiciel au boulote (j'avais posté à ce sujet), qui fonctionne sans souci dans sa globalité.

    Pas de problème pendant 7 h à ne rien faire (donc logiciel lancé, mais après j'y touche plus), mais quand je reviens le lendemain, j'ai un joli dépassement de capacité (la fameuse et parlante Erreur d'exécution '6' ).

    J'ai lu par ci par là, que des personnes rencontrent ce problème lorsque une variable Interger par exemple, dépasse 32,767 .

    J'utilise pas mal de variables Interger (c'est donner de la confiture aux cochons) pour faire des toggles (en gros valeurs 0 ou 1, je vais mettre Boolean plutot), je n’ai pas en tête quelque chose qui s’incrémente indéfiniment dans ce code.

    Le code est très long pour le poster ici, mais je souhaiterais savoir, afin d'orienter mes recherches, si un dépassement de capacité peut être dû à autre chose que ce genre de problème (valeur qui dépasse la valeur maxi du type de variable) ?

    Merci pour vos lumières et bon Ouiken
    Couin
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr
    Nouvelle version de Jingle Palette sur jinglepalettereloaded.com

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 191
    Points
    17 191
    Par défaut
    Salut
    Citation Envoyé par Couin Voir le message
    Coucoutte
    ....
    J'utilise pas mal de variables Interger (c'est donner de la confiture aux cochons) pour faire des toggles (en gros valeurs 0 ou 1, je vais mettre Boolean plutot), je n’ai pas en tête quelque chose qui s’incrémente indéfiniment dans ce code.
    Ce serai déjà une bonne chose et éliminerait un possible cas de figure.
    Citation Envoyé par Couin Voir le message
    ....
    afin d'orienter mes recherches, si un dépassement de capacité peut être dû à autre chose que ce genre de problème (valeur qui dépasse la valeur maxi du type de variable) ?

    Merci pour vos lumières et bon Ouiken
    Couin
    A ma connaissance il existe au moins un autre déclenchement provoquant cette erreur, une saturation dans un conteneur autre qu'une variable.
    Tu dis dans la discussion du lien utiliser un TextBox pour afficher le résultat des trames (via le Timer (ou l’événement OnComm)), si il y a cumul des informations dans ce conteneur, là aussi il peut y avoir saturation du nombre de caractères possiblement acceptable par ce contrôle.
    Je ne sais plus dailleurs si on peut limiter ou non le nombre de caractères entrés dans le TextBox, a vérifier.
    Voilà une ou deux pistes pour t'occuper ce weekend.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Le contrôle TextBox ne peut pas supporter plus de 800 Ko => testé
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 191
    Points
    17 191
    Par défaut
    Salut

    l_autodidacte, il me semblait bien qu'il y avait une limite, je pense même que cela dépend aussi de la mémoire installée sur l'ordinateur.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Points : 67
    Points
    67
    Par défaut
    Hello,

    Déjà merci d'avoir pris le temps de lire et répondre

    Pour les types de variables, j'ai modifié celles qui pouvaient être passées en Boolean et en changeant leurs valeurs (passer de 0/1 à False/True). Ça sera mieux en effet je pense.
    Pour d'autres variables Integer qui servent de toggle à 3 ou 4 positions (valeur 0 à 3 par exemple) , je les ai passées en "Byte".

    Pour ce qui est de la réception de données, je pense pas que ce soit ça qui fasse ce dépassement de capacité car quand je laisse le logiciel tourner sans rien faire, l'équipement avec lequel il communique (en infra rouge) n'est pas alimenté, donc aucune donnée ne revient vers le logiciel. Dans la logique cette textbox doit rester vide dans ce cas là. Je verrais à modifier (il faut que je me replonge dans cette partie du code lol) la semaine prochaine pour la rendre visible et voir si quelque chose se rempli.

    Edit :
    J'ai installé avant de partir en fin de faction, un outil de prise de palme à distance sur le pc de test (pas développement) et j'ai le dépassement de limite au bout de 5 minutes au lieu de plusieurs heures.

    Si j'en fais une déduction, je dirais que c’est suite au changement d’une variable Integer (limitée donc à 32,767) à Byte (limitée à 255), si je fais le calcul, en Integer le dépassement de limite serait au bout de 10,4 H (ce qui explique que je ne puisse le voir pendant ma faction car elle ne fait pas 10h lol) mais alors là, si ma déduction est bonne, ça va être dur à trouver car aucune variable n'est censée montée en boucle comme ça.
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr
    Nouvelle version de Jingle Palette sur jinglepalettereloaded.com

  6. #6
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 191
    Points
    17 191
    Par défaut
    Salut Re

    Il y a plusieurs années, j'avais un programme qui tournait 24h sur 24h, 7 jours sur 7, j'avais un autre type de problème très aléatoire de dépassement de capacité, j'ai fini par faire une version qui écrivait un log tous les 1/4 heures, j'ai enfin trouvé qu'une capteur de température me donnait une mesure erronée/impossible au delà de 65° il passait soudainement à 185° (alors que le capteur était donné pour une plage de -25° à 100°), comme cette donnée était multiplier par 1000 dans une partie du code, paf erreur 6.
    J'ai mis près de 3 mois pour déceler ce problème de capteur, j'avais logué un paquet de variables, mais ne m'attendant pas à ce défaut du capteur, ce n'est qu'au bout de ces 200jours que j'ai pu corriger le problème.
    Comme quoi, un petit log peut donner des indications utiles.

    Bon coin coin courage pour la suite de tes recherches.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Points : 67
    Points
    67
    Par défaut
    Ah ouais 3 mois c’est chaud lol
    Bon après je compte trouver plus tôt, je vais déjà jouer avec des swaps entre Byte et Integer, et si le dépassement de capa n'est plus au bout de 5 min ça me donnera déjà un indice sur la variable à checker.
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr
    Nouvelle version de Jingle Palette sur jinglepalettereloaded.com

  8. #8
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Points : 67
    Points
    67
    Par défaut
    Pouet pouet

    Et voilà, trouved !

    Alors en fait dans le soft, une variable compte le nombre de fois où l'équipement n'est pas vu par le capteur et si pas vu plus de 2 fois consécutives, le soft déduit que l'équipement n'est plus présent (en fait c’est pour effacer le numéro de série saisie, afin que les utilisateurs ne traitement pas plusieurs équipements avec le même numéro de série, ca oblige à scanner le numéro de série à chaque fois qu'un autre équipement est mis en place).

    Tous mes précédents essais du soft se faisaient sur courte durée et avec un équipement en place, d'où le fait que je n'avais pas eu cette erreur.

    Du coup, j'ai mis un truc de façon à ce que si la variable est supérieure à 10 (valeur arbitrairement définie), la variable = 10, comme ca, elle monte jamais plus haut.

    Merci pour les coups de palmes
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr
    Nouvelle version de Jingle Palette sur jinglepalettereloaded.com

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 17/10/2014, 16h08
  2. Transaction, Dépassement de capacité
    Par SkYsO dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 23/12/2008, 14h56
  3. Dépassement de capacité
    Par jean-pierre96 dans le forum Access
    Réponses: 2
    Dernier message: 10/05/2006, 16h04
  4. Réponses: 8
    Dernier message: 06/02/2006, 14h34
  5. détection de dépassement de capacité
    Par tut dans le forum C++
    Réponses: 10
    Dernier message: 01/12/2004, 22h11

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