Newsgroup: it.comp.www.asp
Titolo: HELP DATABASE

Salve a tutti,
ho questo probblema che non riesco a risolvere :
partendo da una pagina ricerca.htm dove ho 2 Campi modulo menu a discesa:
1 Marche
2 Linea Prodotto
vado ad interrogare engine.asp che contiene la seguente sintassi :
SqlJunk = SqlJunk & " WHERE (Marca= '"& _
Request.Form("DaInBox") & "' AND [Linea Prodotto]='"&
Request.Form("TypeSearch") & "')"
If Request.Form("TypeSearch")="Tutte" then sqlJunk = "SELECT * FROM Tlistino
WHERE (Marca= '"& Request.Form("DaInBox")& "')"
i dati mi appaiono a video solo quando ci sono piu' pagine e vado alla
pagina successiva appare 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 dall'applicazione è
necessario disporre di un record corrente.
/iisadmin/motore/engine.asp, riga 40
Sono giorni che ci perdo la testa ma non ne arrivo a capo.
Grazie a tutti.
Ivan

 Ivan
Domanda: Per visualizzare i dati utilizzi una procedura del tipo For ... Next o
Do ... Loop?
controlla se il "range" di questi cicli NON SIA FISSO.
Mi spiego meglio:
Se hai messo un ciclo del tipo:
For f = 1 to 10
    Response.write Rs.Fields("Dati")
    Rs.MoveNext
Next
Dove "Rs" identifica il RecordSet, se nella tabella "Dati" hai 10 o piů valori,
la procedura funziona correttamente ma se di valori ne hai meno di 10 (es.: 9)
quando il 9 valore viene caricato, l'istruzione Rs.MoveNext punta al valore 10
... che perň non esiste dando quindi l'errore che hai riscontrato tu stesso.
Il ciclo corretto č questo:
Do While Not Rs.EOF
    Response.write Rs.Fields("Dati")
    Rs.MoveNext
Loop
L'istruzione Rs.EOF ha solo due valori: 0 (zero) e 1.
Nel caso in cui il record corrente NON č l'ultimo questo valore č sempre pari a
1 mentre passa a 0 quando il record č l'ultimo.
Cosě facendo il loop, al caricamento dell'ultimo record, si termina senza
provocare errori.
Ciao
Michele Mariotti

 /iisadmin/motore/engine.asp, riga 40
sembrerebbe un tipico errore di paginazione fatta a metà.
sarebbe opportuno, se usi cicli for... next, che tu ci mettessi un
controllo, del tipo:
for record=1 to 10
   if rs.Eof<>true and rs.Bof<>True then
     .... tuo codice...
   end if
   rs.movenext
next
se utilizzi la paginazione, inoltre, ricordati di impostare qualcosa del
tipo
rs.pagesize=10
rs.AbsolutePage=request("page")
dove 10 è il numero di record per pagina, e request("page") contiene il
numero di pagina.
Maggiori informazioni sui database le trovi leggendo questo articolo su
ASPItalia.
http://www.aspitalia.com/articoli/db/
--
CIAO!.db
Daniele "The Night Surfer" Bochicchio <webmaster(at)ASPItalia.com>
----------- H T T P : / /  W W W . A S P I T A L I A . C O M -----------
Moderatore di it.comp.www.asp
Materiale: 
http://www.ASPItalia.com/newsgroup/icwa.asp
Tutto su NT: 
http://www.ASPItalia.com/
----------- H T T P : / /  W W W . A S P I T A L I A . C O M -----------
Ogni giovedì un nuovo articolo. Clicca qui per quello di questa
settimana: 'Word, ASP e gli out-of-process components'
http://www.ASPItalia.com/articoli/articoli.asp?settimana
----------- H T T P : / /  W W W . A S P I T A L I A . C O M -----------
Scopri in anteprima per l'Italia il nuovo Professional Active Server Pages
3.0. Collegati al nostro sito e leggi on-line, gratuitamente, un capitolo.
http://www.ASPItalia.com/shop/libri/ProASP3/
----------- H T T P : / /  W W W . A S P I T A L I A . C O M -----------
Leggi it.comp.www.asp sul web!
http://www.aspitalia.com/newsgroup/icwa.asp?gonews
----------- H T T P : / /  W W W . A S P I T A L I A . C O M -----------