Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    inserire vettore dentro ciclo do?

    Ho un ciclo do che legge i campi Avviso all'interno di un database Access.
    Ogni riga del database contiene un avviso diverso.
    Codice apertura database:
    <%
    Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
    OBJdbConnection.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("informazioni.mdb")
    sql = "SELECT * FROM tblAvvisi"
    Set RS=OBJdbConnection.Execute(sql)
    IDAvv=rs("IDAvv")
    Avviso=rs("Avviso")
    %>
    codice di lettura database:
    <%Do while NOT RS.EOF
    i=i+1%>
    <%
    IDAvv=rs("IDAvv")
    Avviso=rs("Avviso")
    %>
    codice scrittura a video delle righe del database:
    <%IDAvv=rs("IDAvv")
    response.write "<font color=#000080 face=Arial size=2>"&IDAvv&"</font>"
    %>
    <%Avviso=rs("Avviso")
    response.write "<font color=#000080 face=Arial size=2>"&Avviso&"</font>"
    %>
    <%
    RS.MoveNext
    Loop
    RS.Close
    OBJdbConnection.Close%>


    Il problema è che vorrei assegnare ad ogni avviso e quindi ad ogni riga una variabile di nome:
    avviso1
    avviso2...
    in modo poi da trasferire questi dati alla pagina successiva.
    Come si può inserire all'interno del ciclo do un vettore?
    ho provato nel modo seguente, ma non funziona:

    <%Do while NOT RS.EOF
    i=i+1%>
    <%
    IDAvv=rs("IDAvv")
    Avviso=rs("Avviso")
    Dim A()
    A(i)=Avviso
    %>

    Come si può fare?
    Grazie a tutti.

  2. #2
    2 modi

    1. usi una redim preserve
    2. accodi i valori a una variabile con un carattere di separazione, e al termine del ciclo fai una SPLIT

  3. #3

    grazie...

    ho fatto in questo modo:
    <%Do while NOT RS.EOF
    i=i+1%>

    codice per mettere tutto in un'unica stringa: <%
    IDAvv=rs("IDAvv")
    Avviso=rs("Avviso")
    Dim totavv, totavv1, avviso1
    totavv=replace(Avviso," ","_")
    totavv1=totavv1 & totavv & ";"
    avviso1=split(totavv1,";")
    for i = 0 to uBound(avviso1)
    next
    for i = 0 to uBound(avviso1)
    response.write("<table width=500 align=center><tr><td>"&(avviso1(i))&"</td></tr></table>
    ")
    next
    response.write("<table width=500 align=center><tr><td>"&totavv1&"</td></tr></table>
    ")
    %>
    <%
    RS.MoveNext
    Loop
    RS.Close
    OBJdbConnection.Close%>


    Il problema è che ad ogni ciclo mi fa vedere totavv1, io vorrei vederla solo per l'ultimo record inserito,
    c'è un comando per dire di visualizzarla solo per l'ultimo pezzo di avviso1?
    Grazie.

  4. #4
    metti la response.write di totavv fuori dal ciclo...

  5. #5

    ma se io...

    ...tiro fuori dal ciclo do, la variabile totavv1, è sicuro che mi da sempre il valore dell'ultimo record?
    riesco a contare il numero di record presenti nella tabella.
    se per esempio sono 6 posso comandare in asp di fornirmi la variabile totavv solo per il record 6:
    con un "if last record response.write totavv1": l'ho buttato cosi per intenderci!
    Grazie.

  6. #6
    la valorizzi dentro al ciclo e la stampi fuori. sicuro che stampi l'ultimo

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.