Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema sul operatore confronto

    Ciao,
    ho una query che legge una tabella e dove io ho impostato delle condizioni in relazione al risultato della lettura.
    Il codice è questo:
    codice:
    selSeriale="SELECT MAX(CTSERIAL) AS seriale, MAX(CTFLAG) AS flag FROM CONT_MAST"
    
    SET RS = objConn.Execute (selSeriale)
    
    if RS.EOF then 
     
    seriale = 1
    
    else
    
      if RS("flag") = "S" then
    
      seriale = RS("seriale")
      seriale = seriale+1
      
      else
      
      response.redirect("index.asp?errore=1")
      
      end if
    
    
    end if
    In pratica il primo controllo fa sì che se la select non trova nulla allora assegna il valore 1 alla variabile seriale.
    Se invece trova qualcosa e il campo RS("flag") è uguale a S allora mi incrementa il seriale di 1 altrimenti mi fà il redirect sulla pagina indicata.
    Il problema sta nel fatto che anche se il flag è uguale a S mi và sempre sul redirect, come se non riconoscesse questa riga "if RS("flag") = "S" then".
    Ho provato anche a stampare RS("flag") e mi restituisce "S" quindi perchè non funziona?

  2. #2
    prova con

    if Ucase(Trim(RS("flag"))) = "S" then

    che magari dopo la S ci sono degli spazi

  3. #3
    così il controllo funziona però succede una cosa strana con l'EOF....
    Se lo metto così:
    codice:
    if RS.EOF then
    e nella tabella non ci sono record passa direttamente alla seconda condizione facendo il redirect
    Al contrario se metto IF NOT RS.EOF, la prima volta quando non trova record si ferma sulla prima condizione, invece quando la pagina viene richiamata la seconda volta, e nella tabella già esiste un record, mi si ferma sempre sulla prima condizione invece dovrebbe proseguire. Ma cosa fà esattamente l'EOF?

  4. #4
    l'EOF controlla l'EndOfFile (se cicli il recordset ti segnala che sei arrivato alla fine). ma con una istruzione SQL di aggregazione ti riporterà sempre almeno un record

  5. #5
    ed infatti se la tabella ha almeno un record, le istruzioni condizionali funzionano perfettamente.
    Al contrario se la tabella è vuota riscontro il problema che ho appena riferito.
    Credo che risolverò il problema lasciando un record di default sulla tabella in modo che poi possa funzionare correttamente.
    Grazie Optime per il tuo aiuto.

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.