121 messaggi dal 12 luglio 2001
Scusate,

Come completereste questo script?
"se il recordset si trova contemporaneamente dopo l'ultimo e prima dell'inizio vuol dire che è vuoto"

If quiNomeRecordset.EOF And quiNomeRecordset.BOF Then... e poi?

Grazie
2.584 messaggi dal 14 maggio 2001
Scusami, non ho capito il tuo problema..
121 messaggi dal 12 luglio 2001
Il problema è che quando faccio una ricerca e non trova risultati, invece di restituirmi la tabella vuota mi segnala un errore:

"ADODB.Recordset errore "800a0bcd'

Il record corrente corrisponde all'inizio o alla fine del file oppure è stato eliminato. Per eseguire l'operazione richiesta è necessario disporre di un record corrente.

risultati.asp, riga 89"
11.886 messaggi dal 09 febbraio 2002
Contributi
Quell'errore capita perchè stai cercando di compiere operazioni come movenexet, pagesize o absolutepage su un recordset vuoto.

L'istruzione
if rs.Eof and rs.Bof then
è giusta ma tutte le operazioni di cui ho parlato qui sopra, devono trovarsi all'interno dell'if, altrimenti riceverai quell'errore.

Di solito però, non ti conviene usare contemporaneamente eof e bof, ti basta il solo eof, guarda l'esempio:

rs.Open "SELECT * FROM tabella",cn,3,1
if not rs.Eof then
rs.Pagesize = 10
rs.AbsolutePage = 1
end if
'la paginazione viene effettuata solo se c'è almeno un record nel recordset
'ora invece mostro a video tutti i record, usando sempre eof

while not rs.EOF
Response.write rs("campo") & "<br>"
rs.Movenext
wend

Capito? Ogni qualvolta ti da errore in una linea, la devi inserire in un if:
if not rs.EOF
'istruzione che da l'errore
end if

Enjoy learning and just keep making
121 messaggi dal 12 luglio 2001
BrightSoul ha scritto:
Quell'errore capita perchè stai cercando di compiere operazioni come movenexet, pagesize o absolutepage su un recordset vuoto.


Esatto!!!
Il problema è proprio sul movenexet!! Se lo tolgo funziona tutto!!!
Come faccio allora a risolvere il problema mantenendo il movenexet?
Ti posto il codice mi potresti dare una dritta?
<%
' *** Recordset Stats: if we don't know the record count, manually count them

If (risultati_total = -1) Then

  ' count the total records by iterating through the recordset
  risultati_total=0
  While (Not risultati.EOF)
    risultati_total = risultati_total + 1
    risultati.MoveNext
  Wend

  ' reset the cursor to the beginning
  If (risultati.CursorType > 0) Then
    risultati.MoveFirst
  Else
    risultati.Requery
  End If

  ' set the number of rows displayed on this page
  If (risultati_numRows < 0 Or risultati_numRows > risultati_total) Then
    risultati_numRows = risultati_total
  End If

  ' set the first and last displayed record
  risultati_first = 1
  risultati_last = risultati_first + risultati_numRows - 1
  If (risultati_first > risultati_total) Then risultati_first = risultati_total
  If (risultati_last > risultati_total) Then risultati_last = risultati_total

End If
%>

scusa ma sono veramente un newbie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.