Salve a tutti, avrei un problema con una pagina che continua a darmi il seguente errore:
tipi di dati non corrispondenti nell'espressione criterio
Praticamente il mio problema è questo.
Ho una tabella con degli articoli ed una foto ( nel caso dovessi associare una sola foto a quell'articolo ) e una, correleta, per le foto aggiuntive.
TABELLA ARTICOLI
IDarticoli
articolo
ecc
foto
rndField ( numerico )
TABELLA FOTOARTICOLI
IDfoto
articoloID
foto
Devo memorizzare, assieme agli altri dati inseriti dall'utente, un dato da noi impostato: dopo l'inserimento basterà interrogare la tabella alla ricerca di questo valore per ottenere l'ID del record. Inoltre, il codice che recupera l'ID mediante questa interrogazione, dovrà essere insensibile agli eventuali ritardi nella creazione del record sul database.
Nel form da compilare aggiungo un campo nascosto a cui assegno, come valore l'ID di sessione ossia, il codice HTML del campo è:
Non posso usare il metodo Request dal momento che faccio l'upload delle foto.codice:<input type="hidden" name="rndField" value="<%= Session.SessionID%>">
Dopo invio i dati ad una pagina che mi calcolerà lID:
ora il problema sorge nella pagina successiva quando poi vado a svuotare il campo rndField della tabella, altrimenti, in un successivo inserimento da parte dello stesso utente, essendo la SessionID la stessa, succede un casino. La pagina è la seguente:codice:MM_editConnection = MM_piscinola_STRING MM_editTable = "articoli" MM_editRedirectUrl = "trova.asp?rndField=" & Session.SessionID
Funziona tutto, ma quando ho aggiunto l'istruzione UPDATE, mi da l'errore citato prima.codice:<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <% Dim objRs__MMColParam, intID objRs__MMColParam = "1" If (Request.QueryString("rndField") <> "") Then objRs__MMColParam = Request.QueryString("rndField") End If %> <% Dim objRs Dim objRs_numRows Dim MM_editRedirectUrl MM_editRedirectUrl = "insert_altre_foto_prima.asp" Set objRs = Server.CreateObject("ADODB.Recordset") objRs.ActiveConnection = MM_piscinola_STRING objRs.Source = "SELECT IDarticoli FROM articoli WHERE rndField = " + Replace(objRs__MMColParam, "'", "''") + "" objRs.CursorType = 0 objRs.CursorLocation = 2 objRs.LockType = 1 //objRs.Open() objRs_numRows = 0 // Inizializza il ciclo semi-infinito Do // Apre il recordset objRs.Open() // Verifica se esiste il record If Not objRs.EOF Or Not objRs.BOF Then // Recupera l'ID intID = objRs.Fields("IDarticoli") End If // Chiudo il recordset objRs.Close() // Chiude il ciclo Loop Until intID > 0 %> <% Set Conn=server.createobject("adodb.connection") Conn.Open MM_piscinola_STRING 'Set RS = Server.CreateObject("ADODB.Recordset") // svuota il campo rndField ( numerico ) StrSQL = "UPDATE articoli set rndField = NULL Where IDarticoli = '" & IDarticoli & "'" Conn.execute StrSQL Conn.close Set objRs = Nothing set Conn = nothing Session("AltreFoto") = intID // Richiama la pagina per l'inserimento altri dati trasmettendo anche l'ID Response.Redirect(MM_editRedirectUrl) //Response.Write(Session("AltreFoto")) Response.End %>
Sbaglio da qualche parte ma non riesco a capire dove.
Chi mi da una mano???? Sono bloccato da mezza giornata![]()
Grazie e Bye

Rispondi quotando