Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: Gestione errori

  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Gestione errori

    Ciao.

    Ho realizzato uno script asp con il quale è possibile scrivere dei dati inseriti in un file excel direttamente nel db access.

    Quando non c'è congruità tra il formato del dato scritto in excel e quello previsto nel corrispondente campo del db access, lo script segnala giustamente:
    Type Mismatch
    questo succede per esempio quando nella cella di excel si scrive del testo ed invece il campo nel db access è previsto numerico.

    Come posso gestire questo tipo di errore?

    Grazie

  2. #2
    come tutti gli altri

    on error resume next, oggetto err o asperror


  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Grazie, ma inserendo on error resume next mi pare che l'errore non venga più segnalato, a me invece servirebbe una cosa del tipo:

    -lo script che importa legge che c'è testo al posto di numerico;
    -a video l'utente viene avvisato con:
    Attenzione, nel campo 'tizio' è stato inserito del testo al posto di numeri...etc"

    è possibile?

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Quello è un altro discorso...
    Usa IsNumeric()

    Roby

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Grazie, ho modificato il code ma anche se il controllo IsNumeric funziona, registra nel dbase, stampa sempre "esito positivo" ed invia il msg email...
    codice:
    oRS.Open "ListFiles", GetConnection, 2, 2
    
      Rs.Open "SELECT * from [DATI$]", "DRIVER=Microsoft Excel Driver (*.xls); DBQ=" & Server.MapPath(DestinationFileName)
          
      Do Until Rs.Eof    
       
       If Rs("campotesto") <> "" Then
       
        oRS.AddNew
    
    oRs("DATS")= Rs("DATA")                  
    oRs("TEMPERATURA")= Rs("TEMPERATURA")
        
        if ISNUMERIC(Rs("PPM")) <> TRUE then
        response.write "ci sono lettere"
        else
        oRs("PPM") = Rs("PPM") 
        end if
                    
    oRs("2_campotesto")= Rs("2_campotesto")                  
    oRs("3_campotesto")= Rs("3_campotesto")
    
    else 
    
    Response.write "esito positivo"
    
    Dim Link
    
    'manda email

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Prova:

    codice:
    If Not IsNumeric(Rs("PPM")) then
    Roby

  7. #7
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Grazie, ma non cambia nulla...

  8. #8
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Ho impostato così:
    codice:
    oRS.Open "ListFiles", GetConnection, 2, 2
    
      Rs.Open "SELECT * from [DATI$]", "DRIVER=Microsoft Excel Driver (*.xls); DBQ=" & Server.MapPath(DestinationFileName)
      
       Do Until Rs.Eof    
       
       if Not ISNUMERIC(Rs("O2_PPM")) then
       response.write "ci sono lettere"
           
        else
       
    oRS.AddNew
    
    oRs("DATS")= Rs("DATA")                  
    oRs("TEMPERATURA")= Rs("TEMPERATURA")
    oRs("2_PPM")= Rs("2_PPM")                  
    oRs("3_PPM")= Rs("3_PPM")
    
    oRs.Update
      
    Response.write "esito positivo"
    
    Dim Link
    'manda email
    
    exit do 
    end if
    
    Rs.MoveNext   
    Loop 
    
    end if
    Next 
    
    Rs.close    
    set Rs=nothing    
    oRs.Close
    Set oRs = Nothing   
    Conn.Close
    Set Conn = Nothing
    ma stampa 'ci sono lettere' n volte... :master:

  9. #9
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Non va neanche così... stampa un generico Type mismatch...
    codice:
    oRS.Open "ListFiles", GetConnection, 2, 2
    
      Rs.Open "SELECT * from [DATI$]", "DRIVER=Microsoft Excel Driver (*.xls); DBQ=" & Server.MapPath(DestinationFileName)
      
       Do Until Rs.Eof    
       
       if Not ISNUMERIC(Rs("2_PPM")) then
       response.write "ci sono lettere"
       end if
    
    if Not ISNUMERIC(Rs("3_PPM")) then
       response.write "ci sono lettere"
       end if
    
    if Not ISNUMERIC(Rs("4_PPM")) then
       response.write "ci sono lettere"
           
        else
       
    oRS.AddNew
    
    oRs("DATS")= Rs("DATA")                  
    oRs("TEMPERATURA")= Rs("TEMPERATURA")
    oRs("2_PPM")= Rs("2_PPM")                  
    oRs("3_PPM")= Rs("3_PPM")
    oRs("4_PPM")= Rs("4_PPM")
    
    oRs.Update
    
    exit do 
    end if
    
    Rs.MoveNext   
    Loop 
    
    end if
    Next 
      
    Response.write "esito positivo"
    'manda email
    
    Rs.close    
    set Rs=nothing    
    oRs.Close
    Set oRs = Nothing   
    Conn.Close

  10. #10
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870


    ci sono quasi... lo script individua bene l'errore, lo stampa a video ma visualizza sempre l'esito positivo ed invia l'email... aiutatemi a capire dove sbaglio...:
    codice:
    on error resume next
    
    oRS.Open "ListFiles", GetConnection, 2, 2
    
      Rs.Open "SELECT * from [DATI$]", "DRIVER=Microsoft Excel Driver (*.xls); DBQ=" & Server.MapPath(DestinationFileName)
      
       Do Until Rs.Eof    
       
       if Not ISNUMERIC(Rs("2_PPM")) then
       response.write "ci sono lettere"
       end if
    
    if Not ISNUMERIC(Rs("3_PPM")) then
       response.write "ci sono lettere"
       end if
    
    if Not ISNUMERIC(Rs("4_PPM")) then
       response.write "ci sono lettere"
           
        else
       
    oRS.AddNew
    
    oRs("DATS")= Rs("DATA")                  
    oRs("TEMPERATURA")= Rs("TEMPERATURA")
    oRs("2_PPM")= Rs("2_PPM")                  
    oRs("3_PPM")= Rs("3_PPM")
    oRs("4_PPM")= Rs("4_PPM")
    
    oRs.Update
    
    Response.write "esito positivo"
    'manda email
    
    exit do 
    end if
    
    Rs.MoveNext   
    Loop 
    
    end if
    Next 
    
    Rs.close    
    set Rs=nothing    
    oRs.Close
    Set oRs = Nothing   
    Conn.Close

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.