Sono giorni che stò impazzendo per risolvere questo problema:
Io ho una pagina che esegue quattro query in questo modo:
query1=......
query2=....
query3=.....
query4=.....
inizio con l'aprire la query1 così
catRecSet.open query1
......................
catRecSe.Close
catRecSet.open query2
.....................
catRecSet.Close
e così via fino alla quarta.
Premetto che io uso Sql 2005 express
Inizialmente il tutto funzionava correttamente poi sono andato a cambiare la quarta query modificandola con una più complessa.
L'originale era questa:
query4="SELECT codice, descrizione, desc_tecnica, foto, marca, prezzo, prezzo_promo, promo, message_promo FROM prodotti WHERE sottocategoria='" & sottCat & "' AND elimina = 'FALSE' ORDER BY prezzo_promo, codice"
quella nuova è questa:
query4="declare @today datetime
set @today = dateadd(yy,0,getdate())
SELECT prodotti.codice, prodotti.DESCrizione, LI.prezzoList, prodotti.desc_tecnica, prodotti.foto, prodotti.marca, prodotti.prezzo, prodotti.prezzo_promo, prodotti.promo, prodotti.message_promo
FROM prodotti
INNER JOIN listini AS LI on prodotti.id= li.idprodottI
WHERE sottocategoria='" & sottCat & "' AND elimina='false'
AND (@today BETWEEN LI.DATAINIZIO AND LI.DATAFINE)
AND LI.DATAFINE = (SELECT MIN(LISTINO.DATAFINE)
FROM lISTINI AS LISTINO
WHERE LISTINO.idprodotti = LI.idprodotti
AND @today BETWEEN LISTINO.DATAINIZIO AND LISTINO.DATAFINE )
AND LI.DATAINIZIO = (SELECT MAX(LISTINO.DATAINIZIO)
FROM LIstini AS LISTINO
WHERE LISTINO.IDPRODOTTI =LI.IDPRODOTTI
AND LISTINO.DATAFINE = LI.DATAFINE
AND @today BETWEEN LISTINO.DATAINIZIO AND LISTINO.DATAFINE )
ORDER BY prezzo, codice"
Questa l'ho provata generando la query direttamente sul Db sql e funziona correttamente. Infatti il problema non si trova su questa query ma la pagina mi restituisce questo errore:
Tipo di errore:
ADODB.Recordset (0x800A0E78)
L'operazione non è consentita se l'oggetto è chiuso.
/euronics/prodotti.asp, line 256
Sono andato a controllare la linea 256 della pagina prodotti.asp ed ho trovato il ciclo che mi estrae gli articoli:
WHILE NOT catRecSet.EOF
Che significa? e perchè mi segnala che l'oggetto è chiuso solo con questa query? invece con quella precedente no? Io ho cambiato solo la query, i cicli e le altre cose sono rimaste invariate!!!
:master:

Rispondi quotando

