01. maj 2003 - 23:16Der er
13 kommentarer og 1 løsning
MYSQL - update - runtime error '800a000d' type mismatch
jeg har forsøgt flere forskellige versioner af updata via asp til mysql uden held.
Er der nogen der kan gennemskue problemstillingen?
forsøg 1:
Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "DRIVER={MySql}; SERVER=mysql.siden.dk; DATABASE=test; UID=test; PWD=test;"
SQL = "Select * From links WHERE ID = '" & Request.querystring("id") & "';"
Set rs = DataConn.Execute(SQL) strUrl = rs("url") If (rs.BOF or rs.EOF) Then 'fejl opstået Else Session("Id") = rs("id") hits = rs("hits") + 1 newSQL = "UPDATE `links` SET `hits`='" & hits & "' WHERE `ID` = '" & Request.querystring("id") & "';" DataConn.Execute newSQL End If DataConn.Close set DataConn = Nothing Response.Redirect(strURL)
forsøg2: Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={MySql}; SERVER=mysql.siden.dk; DATABASE=test; UID=test; PWD=test" If Request.QueryString("id") <> "" Then Set rs = Server.CreateObject("ADODB.RecordSet") ident = Request.QueryString("id") strSQL = "SELECT * FROM links WHERE (ID = '" & Request.querystring("id") & "'" & ")" rs.Open strSQL, myConn, 1, 3 If Not (rs.BOF Or rs.EOF) Then rs("hits") = rs("hits") + 1 strURL = rs("url") rs.Update rs.Close myConn.Close Set rs = Nothing Set myConn = Nothing Response.Clear Response.Redirect(strURL) End If End If
linkidét vises i url adressen "...._dk.asp?mode=id&id=404" så den har et id. Selve feltet ID har jeg i MYSql givet en datatype int(11).
De er nogle få ting der typisk går galt. Eller gjorde i "gamle" dage :) En var noget med at ADO ikke vil putte en for lang streng ind i et felt, som er det samme som hvis det var en Access DB. Men mysql-driveren afleverede ikke max længde på feltet, men kun længden af det aktuelle felt.
Så stod der "halmballe", kunne man godt lave det om det "roekule", men ikke til "mejetærsker".
Men nye mysql-drivere kan have det bedre med det ... måske!
Umiddelbart kan MySQL da godt finde ud af hvis der er ' omkring kolonner som er feneret som tal, men eksvis Access er mere sart omkring det det. Eller for en sikkerheds skyld prøv med:
newSQL = "UPDATE links SET hits=" & hits & " WHERE ID = " & Request.querystring("id") & ";"
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.