Visualizzazione dei risultati da 1 a 3 su 3

Discussione: redim preserve array

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    96

    redim preserve array

    Ciao ragazzi,
    ho cercato nel forum se riuscivo a trovare una risposta al mio dilemma, ma niente... è un'assurdità quella che mi capita, proprio non capisco.
    Devo caricare in un array due informazioni prese da una tabella in modo ciclico, ovvero conosciuto un dato di una prima select, devo rifare la stessa select con il dato trovato e così via finchè quel valore sarà 0. Ad ogni recordset trovato devo mettere due valori nell'array. Terminato il ciclo delle select devo stampare i diversi valori contenuti nell'array. Ovvio che inizialmente non conosco quale sarà la dimensione dell'array finale. Il codice che ho scritto è il seguente, ma non funziona, mi dice Subscript aou of range nella riga di Redim Preserve....
    Ho provato (contando sul db le righe che dovrò memorizzare) a creare l'array fisso e così funzionerebbe.

    dim pathsott()
    i = 0
    s = sott 'dove sot è un intero precedentemente ricavato
    x=0
    Redim pathsott(1,2) 'non si può usare il preserve nel primo redim
    set RSpath = server.CreateObject("ADODB.recordset")
    do while x=0
    strsql = "select * from sotto_cat_download where ID_sottocat=" & s
    RSpath.open strsql, OBJconn
    if RSpath.eof then
    x=1
    else
    i= i +1
    if i >1 then
    Redim Preserve pathsott(i,2)
    end if
    pathsott(i-1,0) = s
    pathsott(i-1,1) = visualizza_html(Rspath("descrizione"))
    s = RSpath("sottocat_prec_id")
    if cint(s)=0 then
    x=1
    end if
    end if
    RSpath.close
    loop
    'inizio il secondo loop per scrivere i risultati
    do while i>0
    n=i-1 %>
    <tr>
    <td width="48" align="left" valign="middle">[img]/immagini/sub_aperta.jpg[/img]
    </td>
    <td align="left" valign="middle" class="verdana12B"><%=pathsott(n,1)%>
    </td>
    </tr>
    <%
    i=i-1
    loop %>

    potete aiutarmi?????
    ciao e grazie
    Sili

  2. #2
    puoi ReDim-ensionare solo l'ultimo elemento, quindi

    Redim [preserve] mioArray(10,x)

    e NON

    Redim [preserve] mioArray(x, 10)

    gira la logica dell'array e funziona tutto

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    96
    Grazie e mille funziona davvero!!! pensare che ci ho perso una giornata!

    grazie ancora!
    Sili

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.