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

    strano problema con Rs("nomecampo")

    ciao a tutti.
    ho 1 ciclo su recordset 1 annidato in un recordset2 esterno:

    codice:
    Rs1.Open();
    miavar = Rs1("nomecampo");
    Rs2.Open();
    while(!Rs2.EOF)
    {
       // fai qualcosa
       Response.Write(miavar);
    }
    Rs1.Close;
    Rs2.Close;
    il problema è che all'interno del ciclo, mia var viene stampata correttamente solamente la prima iterazione mentre le successive vale "null" A MENO CHE a meno che non istanzio la variabile così:
    codice:
    miavar = String(Rs1("nomecampo"));
    Entrambi i recordset utilizzano la stessa connessione... :master: :master:
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  2. #2
    Utente bannato
    Registrato dal
    Dec 2003
    Messaggi
    381
    Rs1.Open()
    miavar = Rs1("nomecampo")
    Rs2.Open()
    while(!Rs2.EOF)

    // fai qualcosa
    Response.Write(miavar)

    rs2.movenext
    wend
    Rs1.Close
    Rs2.Close

    prova ma non sono molto sicura!

  3. #3
    si scusa, ho dimenticato di mettere nell'esempio MoveNext MA NON è penso che non troverò una risposta, perchè credo che il motivo sia legato al modo in cui ADO opera,forse solo chi l'ha sviluppato lo sa.
    E' come se la forma abbreviata Rs("nomecampo") perda lo "stato" dopo 1 chiamata, ed è necessario convertirla in stringa e inserirla in una variabile.
    se non sbaglio Rs.Item("nomecampo").value invece non perde il valore dopo una prima chiamata. questo succede solo se i record NON sono ciclati. :master:
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.