Ciao a tutti,
spero di riuscire a spiegare bene il mio problema.
Da form "madre" apro una "popup" (chiamata nomefilecode.asp) che mi visualizza una lista di item da scegliere (check).
Una volta scelti, la popup
a) richiama se stessa
b) inserisce sul db con una procedura pl/sql
c) si chiude e fa refresh della madre
d) aggiornamento dei dati nella madre
Il dati della popup e della form madre sono in una base dati.
I valori possono essere scelti manualmente, uno ad uno, oppure cliccando su un link "tutti" che li seleziona automaticamente.
Il tutto funziona (anche l'opzione "tutti"), quando il numero degli item scelto è basso (non so quantificarlo esattamente), mentre se il numero è notevole (è prevista la possibilità di arrivare fino a 600), il tutto si blocca, senza dare alcun errore.
Io credo che dipenda dal numero di parametri "accettabili". Infatti nel caso di pochi parametri la stringa di comando è la seguente
A qualcuno è mai successo un qualcosa di simile ed eventualmente come ha risolto?codice:nomefilecode.asp?search=&FLAG_PUBB=N&vc_flagconf=S&vn_codiboll=1289&record_226318=226318&record_226315=226315&record_226314=226314&record_226313=226313
Qui di seguito vi invio lo schema del codice che utilizzo, dove tolgo tutto quello che non serve.
codice:<script language="javascript"> function checkCommit() { document.datiform.vc_flagconf.value='S'; document.datiform.submit(); } </script> </script> </head> <body bgcolor="#f0f0f0"> <% str_FLAG_PUBB = Request.QueryString("FLAG_PUBB") vc_flagconf = Request.QueryString("vc_flagconf") strSearch = Request.QueryString("search") strSearch = Replace(strSearch, "'", "''") vc_data = Request.QueryString("DATA_INIZ_VALI") set currboll = request("vn_codiboll") if vc_flagconf <> "S" then sql = "SELECT to_char(sysdate,'yyyy') anno, to_char(sysdate,'dd/mm/yyyy') vc_data FROM dual" Set rs = Server.CreateObject("ADODB.Recordset") Set cn = Server.CreateObject("ADODB.Connection") cn.Open application("ConnDB") Set rs.ActiveConnection = cn rs.Open sql, cn vc_data= rs("vc_data") rs.close Set con = Server.CreateObject("ADODB.Connection") con.Open application("ConnDB") if str_FLAG_PUBB<>"S" then 'ENTRO COME NON PUBBLICATI SQL = "SELECT * " _ &" FROM v_Asp_ANAGAVVI " _ .... else 'ENTRO COME PUBBLICATI SQL = "SELECT * " _ &" FROM v_Asp_ANAGAVVI " _ .... end if Set rsscrip = con.Execute(sql) if not rsscrip.EOF then %> <script language="javascript"> function selezionatutti(){ <% do while not(rsscrip.eof) id = rsscrip("CODI_AVVI") %> document.forms.datiform.record_<%=id%>.checked = true; <% rsscrip.MoveNext Loop%> } </script> <% end if rsscrip.Close set rsscrip = Nothing Set rs = con.Execute(sql) %> <form name="datiform" action="<%= strURL %>?vc_flagconf=S" method="get"> <font class="titololista">Numero: </font> <input name="search" class="campinotnull" value="<%= strSearch %>" size="15" /> <font class="titololista"> <select name="FLAG_PUBB" class="campinotnull"> <option value="N" <%if str_FLAG_PUBB="N" then response.write("SELECTED")%>>Non Pubblicati</option> <option value="S" <%if str_FLAG_PUBB="S" then response.write("SELECTED")%>>Pubblicati</option> </select> </font> <center> <input type="submit" value="Ricerca" onClick="Modulo()" class="campiform" onMouseOver="this.className='campiform2'" onmouseOut="this.className='campiform'" /> <input type="submit" onClick="javascript:checkCommit()" value="Conferma" class="campiform"> </center> <input type="hidden" name="vc_flagconf" value="N"> <input type="hidden" name="vn_codiboll" value="<%= currboll%>" /> <% if not rs.EOF then %> <table border="1"> <tr> <th class=testolabel>Numero</th> <th class=testolabel>ENTE</th> <th class=testolabel>Tutti</th> </tr> <% Do While Not rs.EOF id = rs("CODI_AVVI") %> <tr> <td valign="top" class=testolista><%= rs("nume_avvi") %></td> <td valign="top" class=testolista><%= rs("DESC_DENO_ENTE") %></td> <td valign="top" class=testolista><input type="checkbox" name="record_<%=id%>" value="<%=id%>"></td> </tr> <% rs.MoveNext Loop %> </table> <p align="center"> <input type="submit" onClick="javascript:checkCommit()" value="Conferma" class="campiform"> </p> <% else %> <p class="errori" > Non risultano Avvisi da inserire </p> <% end if %> <table> </form> <% else ' Entro qui se ho fatto commit e quindi vc_flagconf uguale a S %> <form name="datiform" action="<%= strURL %>?vc_flagconf=S&vn_codiboll=<%=currboll%>" method="get"> <% response.write "STRINGA"&strSearch Set con = Server.CreateObject("ADODB.Connection") con.Open application("ConnDB") if str_FLAG_PUBB="N" then SQL = "SELECT CODI_AVVI " _ & "FROM ANAGAVVI " _ ... else SQL = "SELECT CODI_AVVI " _ & "FROM ANAGAVVI " _ ... end if end if response.write "SECONDA SELECT "&SQL&" " Set rs = con.Execute(sql) i=0 if not rs.EOF then Do While Not rs.EOF record = request("record_" & rs("codi_avvi")) if len(record) <> 0 then i=i+1 iStoredProc = 4 Set conn = Server.CreateObject("ADODB.Connection") set command = Server.CreateObject("ADODB.Command") conn.Open application("ConnDB") con.CommandTimeout = 8000 Server.ScriptTimeout = 9000 command.ActiveConnection = conn command.CommandText = "PR_MODIXXXX" command.CommandType = iStoredProc set objParameter = command.CreateParameter ("VN_CODI_BOLL_AVVI",200,1,10,"") command.Parameters.Append objParameter set objParameter = command.CreateParameter ("VC_ROWID",200,1,50,"") command.Parameters.Append objParameter set objParameter = command.CreateParameter ("VC_CODICAPO",200,1,100,record) command.Parameters.Append objParameter set objParameter = command.CreateParameter ("VC_CODIBOLL",200,1,100,request("vn_codiboll")) command.Parameters.Append objParameter set objParameter = command.CreateParameter ("VC_USERPROC",200,1,50,vc_user) command.Parameters.Append objParameter set objParameter = command.CreateParameter ("VC_CODITIPOOPER",200,1,2,"I") command.Parameters.Append objParameter 'PAREMETRI OUTPUT set objParameter = command.CreateParameter ("vc_codierro",200,2,16) command.Parameters.Append objParameter set objParameter = command.CreateParameter ("vc_descerro",200,2,200) command.Parameters.Append objParameter command.Execute , , adExecuteNoRecords vc_risuinse = command.Parameters("vc_descerro") vc_codirisuinse = command.Parameters("vc_codierro") Response.write "esito " & vc_risuinse record ="" end if rs.MoveNext Loop end if %> <script language="JavaScript"> window.opener.location.reload(); this.close(); </script> </form> <%end if %>

), quando il numero degli item scelto è basso (non so quantificarlo esattamente), mentre se il numero è notevole (è prevista la possibilità di arrivare fino a 600), il tutto si blocca, senza dare alcun errore.
Rispondi quotando

