12. februar 2005 - 18:58
Der er
10 kommentarer og 1 løsning
Too few parameters !
Jeg får en fejl (Microsoft OLE DB Provider for ODBC Drivers error '80040e10' [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. /fiskegrej/fangstrapport/DoupdateFangst.asp, line 29) på nedenstående kode, når jeg skal ændre noget i databasen !!! <% set conn = Server.CreateObject("ADODB.Connection") conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("fang.mdb") SQL = "select * from skema" Set RS = conn.Execute(SQL) sqlstmt = "UPDATE skema SET dato = '" & request.form("dato") &"'" sqlstmt = sqlstmt & ", klokke= '" & request.form("klokke") &"'" sqlstmt = sqlstmt & ", sted= '" & request.form("sted") &"'" sqlstmt = sqlstmt & ", vindretning= '" & request.form("vindretning") &"'" sqlstmt = sqlstmt & ", vindstyrke= '" & request.form("vindstyrke") &"'" sqlstmt = sqlstmt & ", vandstand= '" & request.form("vandstand") &"'" sqlstmt = sqlstmt & ", vandtemrapatur= '" & request.form("vandtemparatur") &"'" sqlstmt = sqlstmt & ", art= '" & request.form("art") &"'" sqlstmt = sqlstmt & ", vagt= '" & request.form("vagt") &"'" sqlstmt = sqlstmt & ", langde= '" & request.form("langde") &"'" sqlstmt = sqlstmt & ", agn= '" & request.form("agn") &"'" sqlstmt = sqlstmt & ", farve= '" & request.form("farve") &"'" sqlstmt = sqlstmt & ", bemarkning= '" & request.form("bemarkning") &"'" sqlstmt = sqlstmt & ", billede= '" & request.form("billede") &"'" Set rs = Server.CreateObject("ADODB.Recordset") >>linie 29>>>>rs.Open sqlstmt, conn, 3, 3 Response.Redirect "default.asp" %> Hvad gør linie 29 foruden den åbener sqlstmt ??? mvh Per
Annonceindlæg fra Lector
12. februar 2005 - 19:07
#1
Typisk betyder fejlen at den ikke kan finde en af de angive kolonner, så tjek kolonnenavne er stavet korrekt. En anden ting hvis du har flere end en post i database skal du havde en WHERE på så du kun opdater den post du ønsker og ikke alle posterne: sqlstmt = .... sqlstmt = sqlstmt & ", bemarkning= '" & request.form("bemarkning") &"'" sqlstmt = sqlstmt & ", billede= '" & request.form("billede") &"'" sqlstmt = sqlstmt & " WHERE id = " & request.form("id")
12. februar 2005 - 19:57
#2
Hej eagleeye ! Du havde ret - jeg fandt en stavefejl, så nu ser koden sådan ud : <% set conn = Server.CreateObject("ADODB.Connection") conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("fang.mdb") SQL = "select * from skema" Set RS = conn.Execute(SQL) sqlstmt = "UPDATE skema SET dato = '" & request.form("dato") &"'" sqlstmt = sqlstmt & ", klokke= '" & request.form("klokke") &"'" sqlstmt = sqlstmt & ", sted= '" & request.form("sted") &"'" sqlstmt = sqlstmt & ", vindretning= '" & request.form("vindretning") &"'" sqlstmt = sqlstmt & ", vindstyrke= '" & request.form("vindstyrke") &"'" sqlstmt = sqlstmt & ", vandstand= '" & request.form("vandstand") &"'" sqlstmt = sqlstmt & ", vandtemparatur= '" & request.form("vandtemparatur") &"'" sqlstmt = sqlstmt & ", art= '" & request.form("art") &"'" sqlstmt = sqlstmt & ", vagt= '" & request.form("vagt") &"'" sqlstmt = sqlstmt & ", langde= '" & request.form("langde") &"'" sqlstmt = sqlstmt & ", agn= '" & request.form("agn") &"'" sqlstmt = sqlstmt & ", farve= '" & request.form("farve") &"'" sqlstmt = sqlstmt & ", bemarkning= '" & request.form("bemarkning") &"'" sqlstmt = sqlstmt & ", billede= '" & request.form("billede") &"'" sqlstmt = sqlstmt & "WHERE id = '" & Request.Querystring("id")& "';" Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sqlstmt, conn, 3, 3 Response.Redirect "default.asp" %> Men nu for jeg denne fejl : Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. /fiskegrej/fangstrapport/DoupdateFangst.asp, line 31
12. februar 2005 - 20:00
#3
Hvis id er et tal, skal der ikke '...' omkring sqlstmt = sqlstmt & "WHERE id = " & Request.Querystring("id")
12. februar 2005 - 20:00
#4
De kolonner som er af typen tal skal der ikke ' omkring, det er kun tekst og notat felter. Har du dato/tids kolonner skal der # omkring.
12. februar 2005 - 20:10
#5
HMm det er åbenbart "where sætningen" som ikke har den rigtig parameter eller hvad det nu hedder ;o)) Jeg troede den skulle ha' Request.Querystring("id") fra update.asp, men sådan ser det ikke ud......Har I et bud ?? Min update side ser sådan ud <% set conn = Server.CreateObject("ADODB.Connection") conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("fang.mdb") sql = "Select * From skema Where Id = " & Request.Querystring("id") Set RS = conn.Execute(SQL) Response.Write("Ændre informationer:") Response.Write("<form action='DoupdateFangst.asp' method='post'>") Response.Write("Fangstdato :" & " ") Response.Write("<input type='text' name='dato' size='20' value='" & RS("dato") &"'>") Response.Write("<p>") Response.Write("Klokke :" & " ") Response.Write("<input type='text' name='klokke' size='20' value='" & RS("klokke") &"'>") Response.Write("<p>") Response.Write("Sted :" & " ") Response.Write("<input type='text' name='sted' size='20' value='" & RS("sted") &"'>") Response.Write("<p>") Response.Write("Vindretning :" & " ") Response.Write("<input type='text' name='vindretning' size='20' value='" & RS("vindretning") &"'>") Response.Write("<p>") Response.Write("Vindstyrke :" & " ") Response.Write("<input type='text' name='vindstyrke' size='20' value='" & RS("vindstyrke") &"'>") Response.Write("<p>") Response.Write("Vandstand :" & " ") Response.Write("<input type='text' name='vandstand' size='20' value='" & RS("vandstand") &"'>") Response.Write("<p>") Response.Write("Vandtemperatur :" & " ") Response.Write("<input type='text' name='vandtemparatur' size='20' value='" & RS("vandtemparatur") &"'>") Response.Write("<p>") Response.Write("Art :" & " ") Response.Write("<input type='text' name='art' size='20' value='" & RS("art") &"'>") Response.Write("<p>") Response.Write("Vægt :" & " ") Response.Write("<input type='text' name='vagt' size='20' value='" & RS("vagt") &"'>") Response.Write("<p>") Response.Write("Længde :" & " ") Response.Write("<input type='text' name='langde' size='20' value='" & RS("langde") &"'>") Response.Write("<p>") Response.Write("Agn :" & " ") Response.Write("<input type='text' name='agn' size='20' value='" & RS("agn") &"'>") Response.Write("<p>") Response.Write("Farve :" & " ") Response.Write("<input type='text' name='farve' size='20' value='" & RS("farve") &"'>") Response.Write("<p>") Response.Write("Bemærkning :" & " ") Response.Write("<input type='textarea' name='bemarkning' size='20' value='" & RS("bemarkning") &"'>") Response.Write("<p>") Response.Write("Billed :" & " ") Response.Write("<input type='text' name='billede' size='60' value='" & RS("billede") &"'>") Response.Write("<p>") Response.Write("<p>") Response.Write("<input type='submit' value='Send'>") Response.Write("</form>") RS.Close Conn.Close %>
12. februar 2005 - 20:14
#6
Id'et bliver kun overført hvis du selv skriver det i enten action delen som en QueryString eller laver et hidden input felt hvor du gemmer ID'et i: ID som QueryString i action delen i form tagen: Response.Write("<form action='DoupdateFangst.asp?id=" & Request.Querystring("id") & " ' method='post'>") Som hidden felt: Response.Write("<input type='hidden' name='id' value='" & RS("id") &"'>")
12. februar 2005 - 20:19
#7
Hidde feltet skal jeg ligge på update side ikk !
12. februar 2005 - 20:21
#8
Ja det skal ligge inde i mellem <form> og </form> sammen med de andre input felter. Bruger du hidden fejltet skal du bruger Request.Form("id") og ikke Request.Querystring("id") i SQL sætningen.
12. februar 2005 - 20:24
#9
Bingo !!! Tak for hjælpen eagleeye Tid til at droppe et svar ;oD
12. februar 2005 - 20:26
#10
Ok her et svar :)
Kurser inden for grundlæggende programmering