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

    Capire la logica dell'if

    Se scrivo:

    ---codice---

    response.write(len_trovato)
    response.write(rs.fields("Occo"))

    ---fine codice

    mi esce il risultato giusto

    ossia 5 3

    Se però scrivo:

    ---codice---

    if len_trovato>=rs.fields("Occo") then

    response.write(len_trovato)
    response.write(rs.fields("Occo"))

    end if

    ---fine codice

    Mi esce solo 5??? La condizione è VERA, ma se la trovasse falsa non dovrebbe uscire nessuno dei due. Perchè esce solo il 5????

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Forse non la stai scrivendo nel posto "giusto"...

    Roby

  3. #3
    Hai sicuramente ragione.

    Facciamo un passo indietro nel programma

    Ho fatto un ciclo di do while con relativo loop.

    Poi ho scritto:

    ---codice---

    rs.movefirst

    if rs.eof then

    response.write(rs.fields("carte1"))
    Response.write("
    ")
    response.write(rs.fields("carte2"))
    Response.write("
    ")

    end if

    ---fine codice---

    Dando il comando rs.movefirst mi sarei aspettato di vedere i campi "Carte1" e "Carte2" del PRIMO record del database.

    Ed invece...c'ha proprio le corna... mi compaiono i campi del 407mo record. e quindi i risultati delle successive elaborazioni sono tutti sballati.

    Come si sposta il puntatore al PRIMO record del database?

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    C'e' una if davanti... gli chiedi di stampare solo se il recordset e' vuoto...

    Ed inoltre la possibilita' di spostarti al primo record dipende da come hai aperto il recordset...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Originariamente inviato da br1
    C'e' una if davanti... gli chiedi di stampare solo se il recordset e' vuoto...

    Ed inoltre la possibilita' di spostarti al primo record dipende da come hai aperto il recordset...
    Il not mancato è un errore di editaggio, nulla di +. Per evitare incomprensioni lo togliamo.

    Questa è la creazione del recordset seguita dal loop con tanto di rs.movenext finale:

    ---codice---

    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Provider="Microsoft.Jet.OLEDB.4.0"
    cn.open "Data Source=D:\Inetpub\webs\laugherit\mdb-database\database3.mdb;"
    Set rs = Server.CreateObject("ADODB.Recordset")

    rs.Open "select definita, carte1, carte2, occo from tabella1", cn, 3, 3

    Set rs = cn.execute("select occo, definita, carte1, carte2 from tabella1")

    do while not rs.eof
    ...
    rs.movenext
    loop

    ---fine codice---

    Se io, proseguendo il codice, qui scrivo

    ---codice---

    rs.movefirst

    response.write(rs.fields("carte1"))

    ---fine codice---



    Quello che compare scritto ora a video è il campo "carte1" del 407mo record.
    rs.movefirst mi aspettavo portasse al primo record del database. Ed invece no. Perchè prende il 407mo record del db e non il 246mo per esempio?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma apri due volte lo stesso recordset con lo stesso nome e con due modalità diverse?

    Roby

  7. #7
    Ok. Trovato l'errore. Ora va.

    Grazie mille.

    Resta il mistero del perchè scegliesse il record 407 ma sopravviverò.

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.