2010-04-26 23 views
6

Quiero que mi matriz multidimensional sea dinámica, cuando intento hacer eso usando reDim, obtengo el error "Esta matriz está fija o temporalmente bloqueada: refArr", siguiendo es mi código:Esta matriz está fija o temporalmente bloqueada (en asp)

max=10 
dim refArr(10,2) 


dim i 
i=0 
while not rs1.eof 

     max=max+1 
     redim refArr(max,2) 

    niftyChange=0 

     refArr(i,0)="niftyDate" 
     refArr(i,1)="temp" 

    i=i+1 
    rs1.movenext 

wend 
+0

En la muestra dada, ni siquiera tendría que volver a atenuar su matriz porque podría inicializarla en 'rs1.RecordCount'. – Filburt

Respuesta

7

Si va a ReDim que, es necesario dim que sin un principio:

dim refArr() 

creo que realmente desea utilizar ReDim Preserve, sin embargo, para mantener el los datos existentes.

+0

Oye, gracias, está funcionando ahora ... ¿Podrías explicar un poco más sobre 'preservar'? Cuando no uso preservar, ¿perderé todos los datos? –

+0

Aprendí que si no uso preservar, perderé todos los datos y si los uso, entonces solo podré cambiar el tamaño de la última dimensión. Pero como he hecho en mi codificación, tengo que cambiar el tamaño de la primera dimensión, de lo contrario no funcionará. Hay alguna forma de salir de eso ... –

+0

Simplemente cambie sus dimensiones y la iteración en consecuencia. ¿Importa qué dimensión viene primero? – RedFilter

Cuestiones relacionadas