Ho un problema davvero difficile da risolvere, spero che qualcuno esperto di questo forum possa darmi un'aiuto...
Questa è una parte dello script della pagina per correlare articoli.
L'id degli articoli correlati viene insertito concatenato in un campo specifico del recordset.
SCRIPT:
codice:<% 'FUNZIONE PER LA VISUALIZZAZIONE DEGLI ARTICOLI CON ID DIVERSO DA QUELLI CORRELATI ALL'ARTICOLO PASSATO function separ(testo,carattere) dim separati separati = split(testo, carattere) k=1 for i=0 to ubound(separati) sql_ARTICOLO_S = "select * from ARTICOLI WHERE ID_ARTICOLO=" & separati(i) & " order by TITOLO" Set rds_ARTICOLO_S = Server.CreateObject("ADODB.Recordset") rds_ARTICOLO_S.Open sql_ARTICOLO_S, conn ,3,3 if rds_ARTICOLI.fields("ID_ARTICOLO")=rds_ARTICOLO_S.fields("ID_ARTICOLO") then k=2 rds_ARTICOLO_S.Close '<<< PROBLEMA set rds_ARTICOLO_S = Nothing next if k=1 then response.write "<OPTION value=" & rds_ARTICOLI.fields("ID_ARTICOLO") & ">" & rds_ARTICOLI.fields("TITOLO") & "</OPTION>" end function %> <% 'INIZIO DEL CICLO ITERATIVO PER MOSTRARE A VIDEO GLI ARTICOLI NON ANCORA CORRELATI do while not(rds_ARTICOLI.eof) if CORRELATI<>"" then testo=CORRELATI carattere="," call separ(testo,carattere) else response.write "<OPTION value=" & rds_ARTICOLI.fields("ID_ARTICOLO") & ">" & rds_ARTICOLI.fields("TITOLO") & "</OPTION> " end if rds_ARTICOLI.movenext loop %>
Tutto funziona perfettamente solo che:
- se chiudo il recordset (rds_ARTICOLO_S)
rds_ARTICOLO_S.Close
set rds_ARTICOLO_S = Nothing
mi fa eseguire solo 16 cicli e mi da l'errore:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][Driver ODBC Microsoft Access] Oggetto non valido o non impostato.
correlati.asp, line 73
- se non chiudo il recordset (rds_ARTICOLO_S) mi da l'errore:
Microsoft OLE DB Provider for ODBC Drivers error '8007000e'
[Microsoft][Driver ODBC Microsoft Access] Impossibile aprire altre tabelle.
correlati.asp, line 73
dopo circa 9 cicli....
perfavore potete consigliarmi come risolvere questo problema, facendo in modo tale che posso eseguire infinite volte il ciclo...(per esempio estraendo tutti i dati e poi usarli dopo aver chiuso il database!!!)....spero ci sia una soluzione.
GRAZIE A TUTTI,
MARCO

Rispondi quotando