2010-07-28 7 views
1

J'utilise Visual Basic 6
je la structure de code suivant:
FUNCNINFO est une structureDurée Erreur '6': Visual Basic

Public funcTable() As FUNCNINFO 
----- 
------ 
ReDim Preserve funcTable(0 To upsize + ns) 

Lorsque la valeur de (upsize + ns) est excédant 32766, il donne l'erreur de débordement d'exécution '6' Avez-vous une idée de la cause et de la solution?

+1

Sont 'upsize' et' ns' ints ou longs? Si vous êtes chanceux c'est juste la limite int de 16 bits (bien que ce soit habituellement 32767) mais je ne serais pas surpris si c'était une limite de taille de tableau. Avez-vous vraiment besoin de votre funcTable aussi grand? – Rup

Répondre

7

Le type Integer de VB6 est de 16 bits et ne peut donc pas stocker une valeur> 32767, son Long étant le type entier de 32 bits.

Dim upsize As Long 
Dim ns As Long 

upsize = 32766 
ns = 12345 

ReDim Preserve funcTable(0& To upsize + ns) 
+0

Salut Merci .. S'il vous plaît noter que la valeur individuelle de upsize et ns ne dépasse pas la taille de l'entier, c'est là la combinaison qui dépasse. – Pradeep

+2

et ne sont pas dans mon exemple, si elles ont toutes les deux été déclarées comme entières (ou pas du tout) alors une erreur 6 débordement est levée –

+0

Salut Rup, Oui c'est la limite de taille de tableau dans le scénario réel. – Pradeep

0

J'ai découvert que c'était la base de données qui avait des erreurs. Je n'ai pas dépanné où exactement l'erreur était mais juste pris une sauvegarde avant la mise à jour et cela a fonctionné ok

Questions connexes