34 messaggi dal 29 luglio 2005
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!!!
17 messaggi dal 17 ottobre 2006
anche io a volte avevo di questi problemi e adesso nn uso + il metodo open del Recordset ma il metodo Execute della connesione es:

dncDB Connesione DB
rsRec Recordset

set rsRec = dcnDB.Execute (query)


così nn mi devo + preoccupare di aprire e chiudere poi alla fine della pagina metto

set rsRec = Nothing


per liberare la memoria

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.