2 messaggi dal 20 maggio 2006
Ciao a tutti,
io sto letteralmente impazzendo con questo errore, spero che qualcuno possa aiutarmi!?! Vi spiego.

De vo fare un manager per gestire un serie di eventi.
Quando vado a salvare un nuovo evento tutto funziona bene, quando invece vado a cercare di cancellarlo i da questo errore:
Microsoft JET Database Engine (0x80040E07)
Tipi di dati non corrispondenti nell'espressione criterio


<% strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../mdb-database/friction.mdb")
Set cn = Server.CreateObject ("ADODB.Connection")
cn.Open strCon

id=request.QueryString("id")
response.Write(id)

Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "SELECT foto FROM concerti WHERE id='"& id &"' ", cn
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM concerti WHERE id='"& request.QueryString("id") &"' ", cn
foto=rs("foto")

'Cancello l'immagine
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
if ScriptObject.FileExists(Server.MapPath("../images/macchine_commercio") & "/" & foto) then
ScriptObject.DeleteFile(Server.MapPath("../images/macchine_commercio") & "/" & foto)
end if
Set ScriptObject = nothing
rs.close

Set cnDB = Server.CreateObject("ADODB.CONNECTION")
cnDB.Open strCon
sql = "DELETE FROM concerti WHERE id='"& id &"' "
cnDB.execute (sql)
cnDB.Close
set cnDB = nothing

response.Redirect("list_concerti.asp?canc=1")
%>

L'errore me lo segnala nella riga in grassetto, la cosa strana è che stampando a schermo la variabile id mi da il valore giusto, e se metto rs.open "SELECT foto FROM concerti WHERE id=2 ", cn tutto funziona.

Nel DB il campo id è un contatore(intero lungo)

Spero che possiate aiutarmi!!
Grazie
Ciao
Fabrizio
27 messaggi dal 01 dicembre 2003
www.steweb.net
Ciao !

Certo se stampi la variabile ID ti restituirà sicuramente 2 ma se avessi stampato la tua query ti saresti accorto che il risultato non sarebbe stato questo:

SELECT foto FROM concerti WHERE id=2

ma questo:

SELECT foto FROM concerti WHERE id='2'

L'errore ti dice appunto che hai messo degli apici come se il campo fosse ti tipo testo in realà è numerico intero lungo !!

Sostituisci con :

rs.open "SELECT foto FROM concerti WHERE id="& id &" ", cn

Ciao
Steweb
Modificato da steweb il 24 maggio 2006 13.22 -

www.steweb.net
2 messaggi dal 20 maggio 2006
Grazie mille per l'aiuto!

Ora però mi da un altro errore:

<% strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../mdb-database/friction.mdb")
Set cn = Server.CreateObject ("ADODB.Connection")
cn.Open strCon

id=request.QueryString("id")
response.Write(id)


Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "SELECT foto FROM concerti WHERE id="& id &" ", cn
Set rs=Server.CreateObject("ADODB.Recordset")
foto=rs("foto")

Cancello l'immagine
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
if ScriptObject.FileExists(Server.MapPath("../images/friction/concerti") & "/" & foto) then
ScriptObject.DeleteFile(Server.MapPath("../images/friction/concerti") & "/" & foto)
end if
Set ScriptObject = nothing
rs.close

id=request.QueryString("id")
Set cnDB = Server.CreateObject("ADODB.CONNECTION")
cnDB.Open strCon
sql = "DELETE FROM concerti WHERE id="& id &" "
cnDB.execute (sql)
cnDB.Close
set cnDB = nothing

response.Redirect("list_concerti.asp?canc=1")
%>

L'errore che mi da è:
ADODB.Recordset (0x800A0CC1)
Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.

Quindi non mi trova il campo foto, che in realtà esiste nel db ed è di tipo testo

Grazie
Ciao
Fabrizio
27 messaggi dal 01 dicembre 2003
www.steweb.net
Bene !
proviamo cosi !


....
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "SELECT foto FROM concerti WHERE id="& id &" ", cn

if not(rs.eof) then
foto=rs("foto")
else
foto = "non c'è foto"
end if

rs.close
set rs=nothing
...
..



Assicurati la correttezza del testo altrimenti puoi metti un valore numerico rs(1) considerando l'ordine delle colonne partendo da Sx con base 0

Ciao Steweb

www.steweb.net

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.