Avatar billede webbygger Nybegynder
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
Avatar billede eagleeye Praktikant
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")
Avatar billede webbygger Nybegynder
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
Avatar billede erikjacobsen Ekspert
12. februar 2005 - 20:00 #3
Hvis id er et tal, skal der ikke '...' omkring

sqlstmt = sqlstmt & "WHERE id = " & Request.Querystring("id")
Avatar billede eagleeye Praktikant
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.
Avatar billede webbygger Nybegynder
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 :" & "&nbsp;")
    Response.Write("<input type='text' name='dato' size='20' value='" & RS("dato") &"'>")
    Response.Write("<p>")
   
    Response.Write("Klokke :" & "&nbsp;")
    Response.Write("<input type='text' name='klokke' size='20' value='" & RS("klokke") &"'>")
    Response.Write("<p>")
   
    Response.Write("Sted :" & "&nbsp;")
    Response.Write("<input type='text' name='sted' size='20' value='" & RS("sted") &"'>")
    Response.Write("<p>")
   
    Response.Write("Vindretning :" & "&nbsp;")
    Response.Write("<input type='text' name='vindretning' size='20' value='" & RS("vindretning") &"'>")
    Response.Write("<p>")
   
    Response.Write("Vindstyrke :" & "&nbsp;")
    Response.Write("<input type='text' name='vindstyrke' size='20' value='" & RS("vindstyrke") &"'>")
    Response.Write("<p>")
   
    Response.Write("Vandstand :" & "&nbsp;")
    Response.Write("<input type='text' name='vandstand' size='20' value='" & RS("vandstand") &"'>")
    Response.Write("<p>")
   
    Response.Write("Vandtemperatur :" & "&nbsp;")
    Response.Write("<input type='text' name='vandtemparatur' size='20' value='" & RS("vandtemparatur") &"'>")
    Response.Write("<p>")
   
    Response.Write("Art :" & "&nbsp;")
    Response.Write("<input type='text' name='art' size='20' value='" & RS("art") &"'>")
    Response.Write("<p>")
   
    Response.Write("Vægt :" & "&nbsp;")
    Response.Write("<input type='text' name='vagt' size='20' value='" & RS("vagt") &"'>")
    Response.Write("<p>")
   
    Response.Write("Længde :" & "&nbsp;")
    Response.Write("<input type='text' name='langde' size='20' value='" & RS("langde") &"'>")
    Response.Write("<p>")
   
    Response.Write("Agn :" & "&nbsp;")
    Response.Write("<input type='text' name='agn' size='20' value='" & RS("agn") &"'>")
    Response.Write("<p>")
   
    Response.Write("Farve :" & "&nbsp;")
    Response.Write("<input type='text' name='farve' size='20' value='" & RS("farve") &"'>")
    Response.Write("<p>")
   
    Response.Write("Bemærkning :" & "&nbsp;")
    Response.Write("<input type='textarea' name='bemarkning' size='20' value='" & RS("bemarkning") &"'>")
    Response.Write("<p>")
   
    Response.Write("Billed :" & "&nbsp;")
    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

%>
Avatar billede eagleeye Praktikant
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") &"'>")
Avatar billede webbygger Nybegynder
12. februar 2005 - 20:19 #7
Hidde feltet skal jeg ligge på update side ikk !
Avatar billede eagleeye Praktikant
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.
Avatar billede webbygger Nybegynder
12. februar 2005 - 20:24 #9
Bingo !!!

Tak for hjælpen eagleeye
    Tid til at droppe et svar ;oD
Avatar billede eagleeye Praktikant
12. februar 2005 - 20:26 #10
Ok her et svar :)
Avatar billede webbygger Nybegynder
12. februar 2005 - 20:32 #11
Hvis I keder jer ;o)) har jeg et andet spørgsmål kørende på http://eksperten.dk/spm/589856
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester