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

    ASP - ciclo do loop in lettura database

    Salve, in un ciclo "do while not - loop" leggo da una tabella di mysql... tutto ok entro un certo numero di record letti, poi non va più. mi sembra evidente che si tratti di un problema di tempo di durata dello script però anche prolungando addirittura a 600 secondi (10 minuti... assurdo) con "Server.ScriptTimeOut = 600" il problema rimane. se limito il ciclo a 6243 record non ci sono problemi. dal 6244 non va.
    qualcuno ha qualche idea in merito?
    grazie in anticipo.

  2. #2
    e se alzi ancora il timeout? poi posta anche un po' di codice

  3. #3
    Quote Originariamente inviata da optime Visualizza il messaggio
    e se alzi ancora il timeout? poi posta anche un po' di codice
    grazie per la risposta, ma non ho risolto. ho addirittura portato a 6000 (tantissimo)

    do while not(rs_listino.eof)
    contatore=contatore+1
    if contatore<=6243 then
    listino_ID=rs_listino("ID")
    listino_codice=rs_listino("codice")
    listino_descrizione=replace(rs_listino("descrizion e"),"""""","'")
    listino_descrizione=replace(listino_descrizione,"" "","")
    listino_prezzo=rs_listino("prezzo")
    listino_ditta=rs_listino("ditta")
    listino_anno=rs_listino("anno")
    end if
    rs_listino.movenext
    loop

    in rosso il controllo sul numero di cicli massimi per evitare l'errore.

  4. #4

  5. #5
    migliaia, ed il numero non é preventivabile
    dimenticavo di precisare che il problema non si presenta in locale, ma solo su aruba

  6. #6
    però non capisco il loop: metti sempre nelle stesse variabili i valori letti dal recordset... puoi spiegare quello che stai cercando di fare?

  7. #7
    ogni volta che leggo poi popolo una select
    al codice ovviamente manca


    do while not(rs_listino.eof)
    contatore=contatore+1
    if contatore<=6243 then
    listino_ID=rs_listino("ID")
    listino_codice=rs_listino("codice")
    listino_descrizione=replace(rs_listino("descrizion e"),"""""","'")
    listino_descrizione=replace(listino_descrizione,"" "","")
    listino_prezzo=rs_listino("prezzo")
    listino_ditta=rs_listino("ditta")
    listino_anno=rs_listino("anno")
    ... (qui carico la select)
    end if
    rs_listino.movenext
    loop

    su aruba tutto funziona fino a che pongo il limite di 6243
    in locale tutto funziona sempre


  8. #8
    1. s'è capito che in locale funziona
    2. "... (qui carico la select)" a me personalmente non dice niente, se posti il codice forse si capisce un po' di più
    3. se hai degli OnError nel codice, disattivali
    4. prova intanto ad aprire un ticket su aruba per alzare il timeout, vedi cosa ti dicono

  9. #9
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,771
    perché dici che potrebbe essere un problema di timeout? se lavori 6000 record quanto impiega?
    vista così, senza chiarimenti sul lavoro reale (codice), mi da l'idea di essere un problema di fruttamento della risorse

  10. #10
    allora, il codice mi sembra di averlo scritto, no? mancava solo la parte in cui dicevo di popolare la select... che optime diceva non fosse chiara... allora diciamo che vado semplicemente a stampare a video il contenuto dei campi letti, record per record.. ma il punto non é però che uso faccio dei campi letti... potrei anche compiere il ciclo di lettura e non farne uso... il punto é che oltre 6243 non va... a prescindere da cosa faccio con i dati letti

    do while not(rs_listino.eof)
    contatore=contatore+1
    if contatore<=6243 then
    listino_ID=rs_listino("ID")
    listino_codice=rs_listino("codice")
    listino_descrizione=re_listino("descrizione")
    listino_prezzo=rs_listino("prezzo")
    listino_ditta=rs_listino("ditta")
    listino_anno=rs_listino("anno")
    response.write(listino_ID & " " & listino_codice & " " & listino_descrizione & " " & listino_prezzo & " " & listino_ditta & " " & listino_anno)
    end if
    rs_listino.movenext
    loop

    posso aggiungere una cosa, avendo disattivato il controllo "on error": mi dice che l'errore é nel buffer

    Execution of the ASP page caused the Response Buffer to exceed its configured limit
    Ultima modifica di marco.agelao; 25-11-2013 a 19:44

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.