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 tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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