Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Server.ScriptTimeout

  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    Server.ScriptTimeout

    Ciao, ho un problema con questo codice perchè restituisce:
    codice:
    Error Type:
    Active Server Pages, ASP 0113 (0x80004005)
    The maximum amount of time for a script to execute was exceeded. You can change this limit by specifying a new value for the property Server.ScriptTimeout or by changing the value in the IIS administration tools.
    questo è il code:
    codice:
    Set rs = Server.CreateObject("ADODB.Recordset")
    
    SQL = "SELECT * FROM BlocNum WHERE id = "&id&" and Invio IS NULL"
    rs.Open SQL, Open, 3, 3 
    
    If rs.Eof then
    response.write "negativo"
    
    Else
    
    SQL = "SELECT * FROM Interr"
    Set rec = myConn.Execute(SQL)
    
    SQL1 = "SELECT * FROM BlocNum WHERE id="&id
    Set rec1 = myConn.Execute(SQL1)
    
    Do while Not rec1.Eof
    
    If REC1("operazione") < REC("operazione") then
    response.write "segnalazione"
    end if
    
    Rec.AddNew
    
     cvalore = Rec("cvalore")
    
    Rec.Update
    
    rec.Movenext
    Loop
    end if

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Sei sicuro di fare le query che ti servono nel modo corretto?
    Il Rec1 secondo me potrebbe non servirti visto che la prima query la fai sulla stessa tabella.
    Per aumentare il server timeout c'è comunque da mettere, all'inizio della pagina, una cosa del tipo:

    codice:
    <%server.scripttimeout = 300 'espresso in secondi quindi 5 minuti%>
    Roby

  3. #3
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Grazie Roby i tuoi consigli sono utili soprattutto per riflettere..., infatto modifico così:
    codice:
    Set rs = Server.CreateObject("ADODB.Recordset")
    
    SQL = "SELECT * FROM BlocNum WHERE id = "&id&" and Invio IS NULL"
    rs.Open SQL, Open, 3, 3 
    
    If rs.Eof then
    response.write "negativo"
    
    Else
    
    SQL = "SELECT * FROM Interr"
    Set rec = myConn.Execute(SQL)
    
    Do while Not rs.Eof
    
    If rs("operazione") < rec("operazione") then
    response.write "segnalazione"
    end if
    
    rec.Movenext
    Loop
    end if
    
    SQL = "SELECT * FROM BlocNum WHERE id="&id
    Set REC = myConn.Execute(SQL)
    
    SQL = "INSERT INTO Ins (data, cvalore, giustificazione) VALUES (#"& data &"#, '"& REC("cvalore") &"', 'assente')"
    set RECX = myConn.execute(sql)
    Ma il problema è che la query di insert (che ho sostituito a rs.addnew) inserisce solo un record invece di tutti i record. perchè? :master:

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Perché la devi mettere DENTRO al loop non fuori.
    L'INSERT lo farà solo in corrispondenza dell'ultimo record.

    Roby

  5. #5
    Utente di HTML.it L'avatar di rinzi
    Registrato dal
    May 2004
    Messaggi
    1,444
    l'errore è chiaro, il time out per l'esecuzione degli scrip è scaduto, assicurati di aver ottimizzato il codice e il caso
    modifica il valore di timeout come già detto


    <%server.scripttimeout = 300 'espresso in secondi quindi 5 minuti%>

  6. #6
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    Perché la devi mettere DENTRO al loop non fuori.
    L'INSERT lo farà solo in corrispondenza dell'ultimo record.

    Roby
    Grazie Roby, ho inserito la insert dentro al loop ma scrive sempre e solo un record ripetuto n volte...

  7. #7
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Dunque il problema del ciclo è risolto, ma perchè questa condizione non funziona, potete spiegarmi?: Grazie
    codice:
    Set rs = Server.CreateObject("ADODB.Recordset")
    
    SQL = "SELECT * FROM BlocNum WHERE id = "&id&" and Invio IS NULL"
    rs.Open SQL, Open, 3, 3 
    
    If rs.Eof then
    response.write "negativo"
    
    Else
    
    SQL = "SELECT * FROM Interr"
    Set rec = myConn.Execute(SQL)
    
    Do while Not rec.Eof
    
    IF rec("cvalore") < rs("bvalore") or rec("avalore") < rs("dvalore") then
    response.write "ok
    "
    
    SQL = "INSERT Ins (data, cvalore, giustificazione) VALUES (#"& data &"#, '"& REC("cvalore") &"', 'assente')"
    set rs2 = myConn.execute(sql) 
    
    ELSE
    response.write "ko
    "
    
    SQLD = "SELECT * FROM BlocNum WHERE id="&id
    Set rs3 = myConn.Execute(SQLD)
    
    IF rs3("fvalore") < 0.1 AND rs3("fvalore") < 0.2 then
    SQL = "INSERT INTO Ins (data, fvalore, giustificazione) VALUES (#"& data &"#, '"& rs3("fvalore") &"', 'presente')"
    set rs4 = MyConn.execute(sql) 
    end if 
    END IF
    la condizione in rosso non viene mai presa in considerazione...

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.