webForumDet fria alternativet

Recordset mismatch en baggis... eeehhh!

ASP

2 svar · 209 visningar · startad av Johanneshov

Medlem sedan nov. 200387 inlägg
Frågan#1

Hi its me! :x

Bifogar en lång radda kod som ger felet:

ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/johanneshov/anvtraning.asp, line 478

Felraden markerad nedan... Börjar bli lite hemmablind!
Har sökt och letat men inte hittat några mismatch. Var kan felet ligga? Har debuggat bort datumanropen så dessa är det inte... :l

If Request.Querystring("do")= "uppdatera" Then

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/nyheter.mdb")
Set RecSet = Conn.Execute("SELECT * FROM traning WHERE id="& Request.Querystring("id"))%>

<td width="575" valign="top" class="text" align="center"><br><br>
<table width="400" bgcolor="silver">
<form method="post" action="anvtraning.asp?action=andra&id=<%=RecSet("id")%>" name="add">
<tr>
  <td><b>Datum:</b><br><input type="text" name="datum" value="<%=RecSet("datum")%>" size="45"></td>
  </tr>
  <tr>
    <td><b>Typ av träning:</b><br><input type="text" name="pass" value="<%=RecSet("pass")%>" size="45"></td>
  </tr>
  <tr>
    <td><b>Träningstid:</b><br><input type="text" name="tid" value="<%=RecSet("tid")%>" size="45"></td>
  </tr>
  <tr>
    <td><b>Sträcka:</b><br><input type="text" name="str" value="<%=RecSet("str")%>" size="45"></td>
  </tr>
  <tr>
    <td><b>Kommentar:</b><br><textarea cols="40" rows="5" name="kommentar"><%=RecSet("kommentar")%></textarea></td>
  </tr>
  <tr>
    <td><input type="Submit" name="andra" value="Ändra"></td>
  </tr>
</form>
</table>
</td>
<%
RecSet.Close
Set RecSet = Nothing
Conn.Close
Set Conn = Nothing

End If

If Request.Querystring("action")= "andra" Then

Set Conn	= Server.CreateObject("ADODB.Connection")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/nyheter.mdb")

Uppdatera = "SELECT * FROM traning WHERE id= "& Request.Querystring("id") &" " 
*felrad 478!*  RecSet.Open Uppdatera, Conn, adOpenStatic, adLockOptimistic  *felrad 478!*

RecSet("datum") =  Request.Form("datum")
RecSet("pass") = Request.Form("pass")
RecSet("tid") = Request.Form("tid")
RecSet("str") = Request.Form("str")
RecSet("kommentar") = Request.Form("kommentar")

RecSet.Update
RecSet.Close
Conn.Close

Response.Redirect "anvtraning.asp?do=editera"
End If %>

Please help!

Medlem sedan dec. 20003 887 inlägg
#2

Det torde bero på att ADO inte vet vad dina konstanter är för något. Ändra adOpenStatic till 3 och adLockOptimistic till 3.

Du kan även ta och använda dig av OleDb istället för ODBC, när du ansluter till databasen.

[blue]'Ändra från:[/blue]
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/nyheter.mdb")

[blue]'Till:[/blue]
Conn.Open "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("db/nyheter.mdb")
Medlem sedan nov. 200387 inlägg
#3

Hmmm... att det skall vara så svårt ibland. Verkar som du satte huvvet på spikeb där!

TACK!

262 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)