Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    select TOP 4 .. ma se non ce ne sono quattro

    ciao, seleziono i primi 4 record di due tabelle con
    codice:
    select TOP 4 * from tbluenews,tbluenewscat where tbluenewscat.catid=tbluenews.catrel ORDER BY dataora DESC
    ma purtroppo se non ce ne sono almeno quattro in una delle due tabelle o in tutte e due le tabelle.. mi esce fuori un errore di record corrente corrisponde all'inizio o alla fine del file..
    come potrei risolvere?
    Voglio l'alt+s anche per FF

  2. #2
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    Così ad occhio, fai un record.count, se inferiore a 4 fai partire una semplice select altrimenti fai partire la top4.

  3. #3
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da diegoctn
    Così ad occhio, fai un record.count, se inferiore a 4 fai partire una semplice select altrimenti fai partire la top4.
    si infatti è quello che ho fatto.. mi sono reso conto però che non è in relatà la select il problema dell'errore ma il for per ciclare..
    infatti ciclavo su 4 record quando me ne restituiva 3
    tipo for i=0 to 3
    Voglio l'alt+s anche per FF

  4. #4
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    però è un cacchio di casino..
    mhh.
    io faccio al momento questo:
    codice:
    set rstopnews=server.CreateObject("adodb.recordset")
    sql="select TOP 4 * from tbluenews,tbluenewscat where tbluenewscat.catid=tbluenews.catrel ORDER BY dataora DESC"
    rstopnews.open sql, conn, 1,3
    		 if not rstopnews.eof then
    		' il ciclo for con contatore al posto del do while perchè non si ripetano record con la stessa data :)
    		
    		 for i=0 to 3
    ..
    'visualizzazione dei record
    ..
    con questo codice se il numero di record restituiti è minore di 4 mi manda l'errore.. altrimenti no..
    tu come intendi controllare il numero ri record..? con recordcount ok, ma che faresti dopo che hai controllato che i record non sono 4?
    Voglio l'alt+s anche per FF

  5. #5
    Invece di un for usa un Do While Not recordset.EOF

  6. #6
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da weppos
    Invece di un for usa un Do While Not recordset.EOF
    he ma come avrai letto il commento non lo uso per un motivo specifico..
    quella query mi restituisce + di 4 record se uso il do while e non ne vengo a capo
    Voglio l'alt+s anche per FF

  7. #7
    E dove sta il problema?
    Controlla che non sia .EOF prima di stampare.

  8. #8
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da weppos
    E dove sta il problema?
    Controlla che non sia .EOF prima di stampare.
    ma lo faccio.. porcaccia evaccia.. non metto l'else nell'if rs.eof però mi riporta l'errore.. cacchio invece non dovrebbe riportarmi errore e manco i recor no?
    Voglio l'alt+s anche per FF

  9. #9

  10. #10
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da weppos
    Come scrivi?
    (ho provato a modificare la query ma niente) Ecco:
    codice:
    set rstopnews=server.CreateObject("adodb.recordset")
    sql="select TOP 4 * from tbluenews,tbluenewscat where tbluenews.catrel=tbluenewscat.catid ORDER BY tbluenews.dataora DESC"
    rstopnews.open sql, conn, 1,3
    if not rstopnews.eof then
    for i=0 to 3
    response.write rstopnews("testo")
    rstopnews.movenext
    next
    end if
    In questo modo visualizzo regolarmente i record, ma se sono meno di 4 mi mostra l'errore che dicevo al primo post..
    se al posto del for scrivo un do while mi mostra + record di quanti ne richiedo.. forse per via della query..
    insomma.. io devo sì visualizzare i primi 4 record, ma se non ce ne sono 4 ne visualizzo 3 o 2 o anche 1 se non ce ne sono proprio non ne visualizzo.. ma cacchio l'errore no!
    Voglio l'alt+s anche per FF

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.