Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Come visualizzare contatore precedente/successivo?

    Ciao a tutti!
    Io ho un DB in SQL con un campo contatore ID.

    In una pagina ASP che, sotto forma di form, mi fa vedere i valori dei campi a seconda dell'ID presente nell'indirizzo web. (esempio:"interventi.asp?ID=12345")

    Sempre nella forma ho un tasto "Avanti" e uno "Indietro".

    Io vorrei che, cliccando su "Indietro", venga ricaricata la stessa pagina con però i valori relativi al primo ID disponibile (che può benissimo non essere, numericamente, -1).

    Lo stesso se clicco su "Avanti" (in quel caso andrà a prendermi il primo contatore ID di numero -superiore a quello attuale- disponibile).

    Esempio: il mio DB ha i seguenti ID contatori disponibili:
    ..
    12342
    12343
    12345
    12347
    12348
    ...
    e io in questo momento sono su "interventi.asp?ID=12345" e voglio cliccare "Indietro". Come faccio a far venir fuori:"interventi.asp?ID=12343" (saltando pertanto 12344 perchè nel DB nn esiste più)?
    Idem per "Avanti".

    Spero di essere stato abbastanza chiaro...

    Grazie mille!!

  2. #2
    Con nomerecordset.MoveNext vai al record successivo, con MovePrevious al precedente.

    Spostati tra i record e seleziona l'ID corrispondente.

  3. #3
    Grazie mille weppos!

    Ci provo lunedì mattina in ufficio e ti faccio sapere!
    Grazie ancora per la tua celere risposta!

  4. #4
    Ciao Weppos,
    ho provato il tuo consiglio, ma sinceramente mi son perso quasi subito...
    pertanto ho provato un'altra strada:
    Quando clicco sul pulsante "Indietro", vado in una pagina ASP di appoggio che si chiama "telprec.asp" alla quale aggiungo la variabile di ID.
    Cioè, se sono in "hotline.asp?ID=12345", cliccando su "indietro" io vado su "telprec.asp?ID=12345".

    Una volta dentro la pagina di appoggio, faccio così:

    codice:
    Dim ID
    ID = request.QueryString("ID")
    
    Dim IDTelPrec
    Dim strsqlPrec, objConnPrec, objRsPrec, strConn
    	strConn = Application("strConn")
    	strsqlPrec = "SELECT TOP 1 ID FROM AAA_HOTLINE WHERE ID < "&ID&" ORDER BY ID DESC;"
    	Set objConnPrec = Server.CreateObject("ADODB.Connection")
    	objConnPrec.Open strConn
    	Set objRsPrec = Server.CreateObject("ADODB.Recordset")
    	objConnPrec.Execute strsqlPrec
    	IDTel = objRsPrec("ID")
    
    response.Redirect("hotline.asp?ID="&IDTel&"")
    Come risultato mi dice:

    ADODB.Recordset error '800a0cc1'

    Item cannot be found in the collection corresponding to the requested name or ordinal.

    /hotline/telprec.asp, line 36

    Dove la linea 36 è: IDTel = objRsPrec("ID").

    Come mai? Abbiamo testato la query su SQL e mi fa effettivamente vedere l'ID desiderato.
    Abbiamo provato anche:
    codice:
    response.Write(strsqlPrec)
    e la vediamo scritta...

    Dove sto sbagliando??


    Grazie mille!

  5. #5
    Andiamo con ordine, tu fai una query per richiamare un record giusto?

  6. #6
    tu fai una query per richiamare un record giusto
    giusto!

  7. #7
    Originariamente inviato da Silcrinf
    giusto!
    Perfetto, ora hai 2 modi per ottenere i record prima e dopo.

    1° Modo
    Fai una nuova query che selezioni i record della tabella, ti sposti all'ID del record in questione e con MovePrevious e MoveNext recuperi l'ID prima e l'ID dopo.

    La query è un po' dispendiosa se hai numerosi record.

    2° Modo (migliore)
    Fai 2 query, una per recuperare l'ID prima e l'altra per l'ID dopo.

    Per l'ID prima basta che fai una SELECT TOP 1 del record con ID minore rispetto a quello in oggetto ordinando DESC la query.

    Per l'ID successivo la query è una SELECT TOP 1 del record con ID maggiore rispetto a quello in oggetto odrinando ASC la query.

  8. #8
    dall'errore che ti dà sembra che il campo non ci sia

    prova ad associarlà così...

    codice:
    if objRsPrec.eof = false then
         IDTel = cstr(objRsPrec(0)& "")
    else
         IDTel = 0
    end if
    if u are junior then Hallo!!!
    if u are senior then Cool!!!
    if u are a lady then Hi baby!!!

    http://www.solamentegratis.it

  9. #9
    ancora piu' semplicemente, si puo' richiamare sempre la stessa pagina modificando la querystring. ad esempio

    id esatto: hotline.asp?ID=12345
    id precedente: hotline.asp?ID=12345&move=prev
    id successivo: hotline.asp?ID=12345&move=next

    dentro hotline.asp interroghi la querystring e ti regoli di conseguenza

  10. #10
    Originariamente inviato da optime
    ancora piu' semplicemente, si puo' richiamare sempre la stessa pagina modificando la querystring. ad esempio

    id esatto: hotline.asp?ID=12345
    id precedente: hotline.asp?ID=12345&move=prev
    id successivo: hotline.asp?ID=12345&move=next

    dentro hotline.asp interroghi la querystring e ti regoli di conseguenza
    Certo, questa è una raffinatezza.
    Dentro hotline prev e next conterranno le query sopra citate.

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.