Questo è l'errore che mi sta perseguitando da svariati giorni e, che non riesco a risolvere.
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver ODBC Microsoft Access]Errore generale. Impossibile aprire la chiave 'Temporary (volatile) Jet DSN for process 0x5ac Thread 0x664 DBC 0x143476c Jet' del Registro di sistema.
Aveo WinXP-PRO-SP1, con l'MDAC Refresh 2.7 installto. Dopo aver installato diligentemente tutto non sono riuscito a far partire lac onnessione al database. Allora mi sono rimboccato le maniche e ho chiesto in giro, mi hanno detto dell'altro Provider OLE DB con Microsoft.Jet.OLEDB.4.0. Nella lettura delle tabelle tutto andava bene, ma nella scrittura mi dava il seguente messaggio:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][Driver ODBC Microsoft Access] Impossibile eliminare dalle tabelle specificate.
oppure:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver ODBC Microsoft Access] Per l'operazione è necessaria una query aggiornabile.
allora, spinto dalla disperazione e dalla fretta ho installato anche Win2K-PRO-SP2 con l'MDAC 2.7 che prima avevo e che funzionava benissimo. Ora, però, neanche questo va, ovvero ogni tanto mi genera il messaggio di errore nella connessione, ma nella scrittura è sempre lo stesso, vuole sempre sta maleddetta query aggiornabile.
Non riesco a capire il perchè! In ufficio ho testato la mia apllicazione su Windows 2000 Server SP2 e tutto funziona alla perfezione. Oppure su Win2K-PRO SP3 e funziona sempre bene.
Sul mio computer la connessione va in errore se, ad esempio, apro il database con access(senza esclusività) ed eseguo lo script, poi chiudo il database e dopo qualche secondo tutto ritorna alla normalità, qualche volta anche con Dreamweaver MX mi succede la stessa cosa. poi chiudo e, se sono fortunato, il database si sblocca dopo qualche secondo, altrimenti devo riavviare tutto.
la connessione è tra le cose più banali possibili:
<%
dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & server.mapPath("../mdb-database/iis4c.mdb")
%>
, non c'è bisogno di password, perchè non è impostata.
il pezzo di codice dove avviene l'errore della query aggiornabile è:
Dim IdP, objControlla, SQLCercaProdottoCart, QtaC, PrezzoC
IdP = request.querystring("IdP")
SQLCercaProdottoCart = "SELECT qta, prezzo FROM cart WHERE key='" & KeyC & "' AND idProd=" & IdP & ";"
Set objControlla = server.createobject("adodb.recordset")
objControlla.open SQLCercaProdottoCart, objConn
if not objControlla.bof or not objControlla.eof then ' il prodotto è stato già inserito nel cart
' in questo caso viene aggiornato solo il campo QTA
Dim SQLAggiornaCarrello
QtaC = objControlla("qta") + 1
PrezzoC = objControlla("prezzo")
SQLAggiornaCarrello = "UPDATE cart SET qta=" & QtaC & " WHERE key='" & KeyC & "' AND idProd=" & IdP & ";"
objConn.Execute(SQLAggiornaCarrello)
Set SQLAggiornaCarrello = nothing
Response.Write("Ho aggiornato la quantità con successo")
else ' il prodotto non è stato ancora inserito nel cart
Dim objrs, SQLCercaProdotto, SQLInserisciCarrello
SQLCercaProdotto = "SELECT * FROM prodotti WHERE ID=" & idP
set objrs = server.createobject("adodb.recordset")
objrs.open SQLCercaProdotto, objconn
PrezzoC = objrs("Prezzo")
QtaC = objrs("Qta")
Set SQLCercaProdotto = nothing
objrs.close
set objrs = nothing
SQLInserisciCarrello = "INSERT INTO cart VALUES('" & KeyC & "'," & IdP & "," & PrezzoC & "," & QtaC & ");"
objConn.execute(SQLInserisciCarrello)
Set SQLInserisciCarrello = nothing
Response.Write("Prodotto inserito con successo nel carrello")
end if ' if not objrs.bof or not objrs.eof
Set SQLCercaProdottoCart = nothing
objControlla.Close
Set objControlla = nothing
Set IdP = nothing
Set QtaC = nothing
Set PrezzoC = nothing
Response.Redirect("../cart/?idSESSION=" & Session("IDSessione") & "&action=view")
posso assicurare che sul vecchio computer WIN2KPRO-SP2 funzionava alla perfezione.
Il problema non è il sistema operativo, questo è chiaro, sarà sclusivamente il driver, ma come posso capire dove è il problema e come aggiustarlo?
Grazie a chi mia aaiuterà.