Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: recordcount e ciclo

  1. #1
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866

    recordcount e ciclo

    Ricavo sia i nomefile che la variabile i del ciclo, ma si raddoppiano!
    codice:
    <%
    Dim recordset, connection
     Dim tot, sSQL, sConnString
    
    Dim sql = "SELECT * FROM gallery WHERE ID2 = " & Request("ID") & ""
    
    
    Connection=Server.CreateObject("ADODB.Connection")
    Recordset=Server.CreateObject("ADODB.Recordset")
    
    sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & _ 
               Server.MapPath("/mdb-database/my-db.mdb")   
    
    Connection.Open(sConnString)
    
    Recordset.Open (sql,connection,3,3)
    
    response.write (sql)
    ' visualizza il contenuto del recordset
    
    If Not Recordset.EOF then
       Recordset.MoveFirst()
    
    
    DO WHILE not Recordset.eof	  
    
    Dim nomefile = Recordset("nomefile").Value()
    tot=Recordset.recordcount
    
    Dim i
    For i = 1 To (tot)
    %>
             <input type="text" name="nomefile<%=i%>" value="<%=nomefile%>" class="casella_hidden" readonly size="20"/>
    <%
    Next
      Recordset.MoveNext()
    
    LOOP
    
    End if
    
    Recordset.Close
     Recordset=Nothing
     Connection.Close
     Connection=Nothing
    %>

  2. #2

  3. #3
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    I record, nel senso che il tot e' giusto ma il risultato appunto dei record stampati si raddoppia.
    Dannato access! Purtroppo adesso devo lavorarci.
    Col mysql nella select ottenevo anche il totale.

  4. #4
    Originariamente inviato da jet
    I record, nel senso che il tot e' giusto ma il risultato appunto dei record stampati si raddoppia.
    Dannato access! Purtroppo adesso devo lavorarci.
    Col mysql nella select ottenevo anche il totale.
    prendersela con access non serve a niente, e di solito si tratta di errori di programmazione...

    piuttosto, non ho ancora capito... che vuol dire " il risultato dei record stampati si raddoppia"? quale risultato?

  5. #5
    sì, guardando il codice posso dirti che c'è un errore di logica. e access non c'entra niente, avresti ottenuto lo stesso risultato anche con mysql

  6. #6
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    Il risultato della query, cioè il seguente codice, anzichè popolarsi con il numero esatto di record presenti del database, si popola raddoppiando i record;
    codice:
    <input type="text" name="nomefile<%=i%>" value="<%=nomefile%>" class="casella_hidden" readonly size="20"/>
    Per errore di logica, intendi che conviene fare una select con il nomefile e count assieme?
    Ci ho provato, ma non ce l'ho fatta.

    Ecco il codice che andava bene con mysql, da sempre.
    Qui ottengo il nomefile e il count e il risultato è esatto.
    Con access però da errore; non accetta il nomefile con il count.
    Ovviamente ID2 è un campo numerico intero e nomefile di tipo testo.
    codice:
    Dim sql = "SELECT ID2,nomefile,Count(ID2) As tot FROM gallery WHERE ID2 = " & Request("ID") & ""
    Dim rs = conn.execute(sql)
    'response.write (sql)
    ' visualizza il contenuto del recordset
    
    If Not rs.EOF then
       rs.MoveFirst()
    
    DO WHILE not rs.eof	  
    Dim tot = rs("tot").Value()
    Dim nomefile = rs("nomefile").Value()
    Dim i
    For i = 1 To (tot)
    %>
             <input type="text" name="nomefile<%=i%>" value="<%=nomefile%>" class="casella_hidden" readonly size="20"/>
    <%
    Next
      rs.MoveNext()
    
    LOOP
    
    End if
    
    rs.Close()
    rs = nothing
    
    ' chiudi la connessione al database
    conn.Close()
    conn = nothing
    
    %>

  7. #7
    e ti sembrano uguali? nella query di mysql c'era anche una count(), in access no. e non essendoci una group by, son quasi certo che quella count() ti riportasse sempre 1 (e questa cosa per tua fortuna azzerava l'errore di logica)

  8. #8
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    Hai ragione, ho controllato!
    ma anche con group by, in mysql restituisce solo 1.

  9. #9
    Originariamente inviato da jet
    Hai ragione, ho controllato!
    ma anche con group by, in mysql restituisce solo 1.
    appunto!!!!! dato che la variabile "Tot" è uno, il tuo errore di logica viene azzerato!

    guarda in access come ricavi la variabile "tot", e capirai l'errore

  10. #10
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    Dunque. Se elimino il ciclo, la select segunte funge in access.

    codice:
    SELECT nomefile FROM gallery WHERE ID2 = " & Request("ID") & " group by nomefile
    Ma come faccio ad assegnare un numero crescente, partendo da 1, al name=nomefile della input?

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.