Avatar billede oskar Nybegynder
29. december 2001 - 18:19 Der er 30 kommentarer og
1 løsning

Underlig fejl.

Jeg får denne fejl:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/sa/opdater.asp, line 13

når jeg sender denne kommando:

strSQL = \"Update Spil set Titel=\'\" & Request.Form(\"Titel\") & \"\' WHERE ID = \" & Request.Form(\"SpilID\")
Conn.Execute(strSQL) \' (linie 13)

strSQl ser sådan f.eks. ud i en response.write:

Update Spil set Titel=\'ActuaSoccer\' WHERE ID = 13

Basen er åben og jeg har ikke problemer med at oprette nye poster eller slette.

Jeg kan altså ikke få øje på hvad der er galt.

:(
Avatar billede ncp Nybegynder
29. december 2001 - 18:29 #1
prøv med:
strSQL = \"Update Spil set Titel=\'\" & Request.Form(\"Titel\") & \"\' WHERE ID = \" & Request.Form(\"SpilID\") & \"\"
Avatar billede oskar Nybegynder
29. december 2001 - 18:45 #2
duede ikke.
Avatar billede ncp Nybegynder
29. december 2001 - 19:12 #3
nu ved jeg det! - to min..
Avatar billede ncp Nybegynder
29. december 2001 - 19:17 #4
strSQL = \"update Spil set Titel=\" & Request.Form(\"Titel\") & \"\' where id=\'\" & request.form(\"spilid\") & \"\' \"

det skulle virke!
Avatar billede oskar Nybegynder
29. december 2001 - 19:20 #5
Den  har jeg også prøvet og den melder type mismatch da feltet spilID er et talfelt.
Avatar billede ncp Nybegynder
29. december 2001 - 19:35 #6
ok, det er da en \"Underlig fejl\" hva ?

heg tror jeg glemte \' ved  \"Titel=\" &\" - det skulle jo se sådan ud:  \"Titel=\'\" &\"

men hvis det ikke hjælper, så kigger jeg på det igen ;)
Avatar billede bestasp Nybegynder
29. december 2001 - 20:23 #7
strSQL = \"Update Spil set Titel=\'\" & Request.Form(\"Titel\") & \"\' WHERE ID =\'\" & Request.Form(\"SpilID\") & \"\'\"
Conn.Execute(strSQL)
Avatar billede oskar Nybegynder
30. december 2001 - 00:17 #8
Jeg tror ikke på at det er noget med sql-sætningen, så nu prøver jeg at smide hele koden ud:
rediger.asp:
<!-- Minus AutoDato -->
<%
If Request.ServerVariables(\"CONTENT_LENGTH\") = 0 Then
Response.Write \"<html>\"
Response.Write \"<TITLE>Redigeringsoversigt</TITLE>\"
Response.Write \"<head>\"
%>
<META NAME=\"Generator\" CONTENT=\"Stone\'s WebWriter 3.5\"><LINK HREF=\"titan.css\" REL=\"stylesheet\" TYPE=\"\'text/css\"></head><BODY>
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"titan.mdb\")
Conn.Open DSN
strSQL = \"Select * from Spil Order by Titel\"
Set rs = Conn.Execute(strSQL)
Response.Write \"<CENTER><H1>Alle Spil</H1></Center>\"
%>
<FORM ACTION=\"rediger.asp\" METHOD=\"POST\" NAME=\"en\">
<%
Response.Write \"<TABLE BORDER=0 cellspacing=0 cellpadding=3 width=*>\"
Response.Write \"<TR bgcolor=black style=\'color:white\'><TD WIDTH=30>Type</TD><TD WIDTH=50>Genre</TD><TD WIDTH=65>Titel</TD><TD WIDTH=120>Pris</TD><TD WIDTH=70>Producent</TD><TD>Link</TD><TD>Rediger</TD></TR>\"
    row_color = \"#DDDDDD\"
    Do
        IF row_color = \"#DDDDDD\" then
            row_color = \"#FFFFFF\"
        Else
            row_color = \"#DDDDDD\"
        End If
    Response.Write \"<TR bgcolor=\" & row_color & \"  style=\'color:black\'>\"
        Response.Write \"<TD>\" & rs(\"Type\") & \"</TD>\"
        Response.Write \"<TD>\" & rs(\"Genre\") & \"</TD>\"
        Response.Write \"<TD>\" & rs(\"Titel\") & \"</TD>\"
        Response.Write \"<TD>\" & rs(\"Pris\") & \"</TD>\"
        Response.Write \"<TD>\" & rs(\"Producent\") & \"</TD>\"
        Response.Write \"<TD>\" & rs(\"Link\") & \"</TD>\"
        Response.Write \"<TD>\" & \"<INPUT TYPE=submit STYLE=font-size:9; VALUE=\" & rs(\"SpilID\") & \" NAME=\'Edit\'>\"  & \"</TD></TR>\"
rs.MoveNext
Loop While Not rs.EOF
Response.Write \"</TABLE>\"
Response.Write \"</FORM>\"
Conn.Close
Set Conn = Nothing
%>
</body></html>
<% Else %>
<head><TITLE>Rediger en post</TITLE></HEAD><HTML><BODY>
<% strAid = Trim(Request.Form(\"Edit\"))
Response.Expires = 0
Dim strType, strGenre, klaus
Response.Write \"<H2>Rediger et spil</H2><BR><BR>\"
klaus=\"WHERE SpilID Like \" & strAid & \"\"
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"titan.mdb\")
Conn.Open DSN
strSQL = \"Select * from Spil \" & klaus
Set rs = Conn.Execute(strSQL)
Response.Write \"<FORM ACTION=opdater.asp METHOD=POST NAME=Opdatering>\"
Response.Write \"<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2>\"
Response.Write \"<TR><TD>ID</TD><TD><INPUT TYPE=text NAME=SpilID Value=\" & rs(\"SpilID\") & \"></TD></TR>\"
Response.Write \"<TR><TD>Type</TD><TD>\" & rs(\"Type\") & \"</TD></TR>\"
Response.Write \"<TR><TD>Genre</TD><TD>\" & rs(\"Genre\") & \"</TD></TR>\"
Response.Write \"<TR><TD>Titel</TD><TD><INPUT TYPE=text NAME=Titel value=\'\" & rs(\"Titel\") & \"\'></TD></TR>\"
Response.Write \"<TR><TD>Pris</TD><TD><INPUT TYPE=text NAME=Pris value=\'\" & rs(\"Pris\") & \"\'></TD></TR>\"
Response.Write \"<TR><TD>Producent</TD><TD><INPUT TYPE=text NAME=Producent value=\'\" & rs(\"Producent\") & \"\'></TD></TR>\"
Response.Write \"<TR><TD>Link</TD><TD><INPUT TYPE=text NAME=Link value=\'\" & rs(\"Link\") & \"\'></TD></TR>\"
Response.Write \"</TABLE>\"
%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=\"submit\" VALUE=\"Send\" NAME=\"Send\"><INPUT TYPE=\"reset\" VALUE=\"Fortryd\" NAME=\"Fortryd\"></FORM></BODY></HTML>
<% End If %>

Og herefter opdater.asp:

<html><!-- Minus AutoDato --><title>Spilredigering</title><head>
<META NAME=\"Generator\" CONTENT=\"Stone\'s WebWriter 3.5\">
<META HTTP-EQUIV=\"Refresh\" CONTENT=\"6;URL=http://195.231.192.125/sa/rediger.asp\">
<LINK REL=\"stylesheet\" HREF=\"titan.css\" TYPE=\"text/css\">
</head><body>
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"titan.mdb\")
Conn.Open DSN
strSQL = \"Update Spil set [Titel]=\'\" & Request.Form(\"Titel\") & \"\', [Pris]=\" & Request.Form(\"Pris\") & \", [Producent]=\'\" & Request.Form(\"Producent\") & \"\', [Link]=\'\" & Request.Form(\"Link\") & \"\' WHERE ID = \" & Request.Form(\"SpilID\") & \"\"
Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
%><BR><BR><BR><BR><h4><CENTER>Det var det</CENTER></h4></body></html>

Avatar billede ncp Nybegynder
30. december 2001 - 11:10 #9
Nu er den der! prøv med:

strSQL = \"Update Spil set [Titel]=\'\" & Request.Form(\"Titel\") & \"\' WHERE ID =\" & Request.Form(\"SpilID\") & \"\"
Conn.Execute(strSQL)
Avatar billede oskar Nybegynder
30. december 2001 - 11:41 #10
heller ikke...
Avatar billede ncp Nybegynder
30. december 2001 - 11:47 #11
Er du sikker på at Request.Form(\"SpilID\") har en tal værdi ?
Avatar billede oskar Nybegynder
30. december 2001 - 11:49 #12
Ja, Autonummereret langt heltal
Avatar billede ncp Nybegynder
30. december 2001 - 11:54 #13
Ja, men ikke i din database, men i asp-filen ?
Avatar billede oskar Nybegynder
30. december 2001 - 11:55 #14
Der er ingen formatering i asp-filen.
Avatar billede ncp Nybegynder
30. december 2001 - 11:57 #15
det jeg mente var, hvordan kaller du denne side ?

hvilken side kommer resultaterne fra ???
Avatar billede oskar Nybegynder
30. december 2001 - 11:59 #16
Siden opdater kaldes fra siden rediger og resultaterne kommer fra en access db
Avatar billede ncp Nybegynder
30. december 2001 - 12:02 #17
ok, men SpilID, ligger den som en skjult tekst boks eller kalder du f.eks. formen sådan her: opdater.asp?SpilID=2 ???
Avatar billede ncp Nybegynder
30. december 2001 - 12:05 #18
Nu har jeg fundet din fejl!

Du får IKKE SpilID med, og derfor finder databasen ikke rækken...
Avatar billede oskar Nybegynder
30. december 2001 - 12:06 #19
SpilID ligger i rediger.asp som en button med værdien sat til spilID som den henter fra basen. Derefter hentes værdi ind i opdater med request.form(\"SpilID\")
Avatar billede ncp Nybegynder
30. december 2001 - 12:08 #20
ja, men kanppen hedder ikke \"SpilID\" - den hedder \"edit\"
Avatar billede oskar Nybegynder
30. december 2001 - 12:09 #21
Heller ikke.

Da jeg satte
response.write(strSQL)
response.end

ind foran

Execute

fik jeg denne linie:

Update Spil set [Titel]=\'ActualSoccer\', [Pris]=99, [Producent]=\'\', [Link]=\'\' WHERE ID = \'13\'

Avatar billede ncp Nybegynder
30. december 2001 - 12:14 #22
oker Pris et tal i databsen ?
Avatar billede oskar Nybegynder
30. december 2001 - 12:16 #23
Det er rigtigt at knappen hedder Edit, men i anden halvdel af rediger.asp flyttes den over i SpilID via et Inputfelt
Avatar billede oskar Nybegynder
30. december 2001 - 12:17 #24
Pris er et tal af typen Valuta i db\'en
Avatar billede ncp Nybegynder
30. december 2001 - 12:18 #25
prøv at ændre det til tekst i databsen og prøv så at sætte \' rund om i asp\'en... jeg tror det er der dit problem ligger
Avatar billede oskar Nybegynder
30. december 2001 - 12:24 #26
Det er desværre ikke altid nok at tro...
Det virkede ikke.
Avatar billede ncp Nybegynder
30. december 2001 - 12:25 #27
ok, jeg giver op...
Avatar billede oskar Nybegynder
30. december 2001 - 12:29 #28
Det gør jeg også. Sletter skidtet og begynder forfra.

Tusind tak for indsatsen.
Avatar billede ncp Nybegynder
30. december 2001 - 12:36 #29
du behøver da ikke at give point, du fik jo ikke løst dit problem rigtigt ?
Avatar billede oskar Nybegynder
30. december 2001 - 12:38 #30
Næh, men jeg er en flink mand der også belønner arbejdsindsatsen.
Avatar billede ncp Nybegynder
30. december 2001 - 12:42 #31
ok, mange tak!!! - og godt nytår ;)
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