Jag har precis börjat med databaser i ASP och ska nu göra en poll-funktion. Men när jag ska uppdatera värdena i cellen ("Result" & röstnummer) (vilket blir tex. Result2, beroende på vilket värde den får genom QueryStringen), får jag det här felet: Den är syntaktiskt korrekt, ja. UPDATE problem i ASP
"Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression."
Koden ser ut såhär:
<code>
ide = Request.QueryString("ID")
rost = Request.QueryString("rost")
<!-- #include virtual="adovbs.inc" -->
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=\\genfs3\www25\banarne\db\polldb.mdb"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM poll WHERE ID=" & ide & ""
RecSet.Open Visa, Connect, adLockOptimisticad 'OpenStatic,
x1 = "Result" & rost
res = RecSet(x1)
resultatet = res + 1
Connect.Execute("UPDATE poll SET " & x1 & " = '" & resultatet & "' WHERE ID='" & ide & "'")
</code>
Felmeddelandet säger att problemet ligger på rad nr. 77, vilket är:
Connect.Execute("UPDATE poll SET " & x1 & " = '" & resultatet & "' WHERE ID='" & ide & "'")
Om jag gör en response.write "UPDATE poll SET " & x1 & " = '" & resultatet & "' WHERE ID='" & ide & "'"
skriver den ut tex.
UPDATE poll SET Result1 = '1' WHERE ID='7'
vilket borde vara en korrekt UPDATE-kod. Eller?Sv: UPDATE problem i ASP
Om det skall fungera så måste du anpassa frågan efter vilka datatyper dina kolumer är definierade som.
t.ex. om kolumnen ID är numerisk så skall det inte vara några apostrofer kring värdet:
Connect.Execute "UPDATE poll SET " & x1 & " = '" & resultatet & "' WHERE ID=" & ide
Om result1 är numeriskt så får du ta bort apostroferna där också.