498 messaggi dal 19 ottobre 2005
Ciao a tutti
devo utilizzare una matrice dinamica e per ridimensionarla ho utilizzato ReDim, ma ricevo un messaggio di errore:

Dim tariffe_giorni(2,0)

Dim tariffe_giorni(2,Cint(night_count))

Msg di errore:
Errore di run-time di Microsoft VBScript (0x800A000A)
Questa matrice è fissa o temporaneamente bloccata

Come risolvo il problema?
Nel codice che hai postato usi ancora "Dim" e non "ReDim"

Matteo Casati
GURU4.net
498 messaggi dal 19 ottobre 2005
E' solo un copia e incolla sbagliato. Nel codice ho scritto giusto e il problema c'è ancora.
Come fare?
2.584 messaggi dal 14 maggio 2001
Prova a non assegnarlo inizialmente...

Dim tariffe_giorni()
ReDim Preserve tariffe_giorni(2,Cint(night_count))
498 messaggi dal 19 ottobre 2005
Provato, mi dice che vuole un tipo integer.
Quando fai la prima dichiarazione prova a non dichiararla come array:

Dim tariffe_giorni
ReDim Preserve tariffe_giorni(2,Cint(night_count))


In questo caso il "Preserve" può anche essere omesso (la matrice è comunque vuota)

Domanda: ma non la puoi già dichiarare con le dimensioni corrette?

Matteo Casati
GURU4.net
62 messaggi dal 14 febbraio 2001
www.frisullo.it
Penso che il problema sia, nella creazione di un array, nel non poter dimensionarli tramite una variabile.

quindi:

mia_variabile = 15

Mio_Array(15) va bene
Mio_Array(mia_variabile) no!


Ciao
Lucio

Lucio
Quello che dice luciotorre è corretto; aggiungo che non si può usare nemmeno una costante per dimensionare un array:

Const c = 3
Dim a(c) '-> ERRORE!


E allora come fare?
Così:

<%

Dim a, b, c

a = Array()
Response.Write UBound(a) & "<br>" ' -> -1

b = 1
ReDim a(b)
Response.Write UBound(a) & "<br>" '-> 1

c = 2
ReDim Preserve a(c)
Response.Write UBound(a) & "<br>" ' -> 2

%>


Credo che lo snippet sopra sia esaustivo.

Matteo Casati
GURU4.net

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.