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. :(
Annonceindlæg fra Computerworld it-jobbank
29. december 2001 - 18:29
#1
prøv med: strSQL = \"Update Spil set Titel=\'\" & Request.Form(\"Titel\") & \"\' WHERE ID = \" & Request.Form(\"SpilID\") & \"\"
29. december 2001 - 18:45
#2
duede ikke.
29. december 2001 - 19:12
#3
nu ved jeg det! - to min..
29. december 2001 - 19:17
#4
strSQL = \"update Spil set Titel=\" & Request.Form(\"Titel\") & \"\' where id=\'\" & request.form(\"spilid\") & \"\' \" det skulle virke!
29. december 2001 - 19:20
#5
Den har jeg også prøvet og den melder type mismatch da feltet spilID er et talfelt.
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 ;)
29. december 2001 - 20:23
#7
strSQL = \"Update Spil set Titel=\'\" & Request.Form(\"Titel\") & \"\' WHERE ID =\'\" & Request.Form(\"SpilID\") & \"\'\" Conn.Execute(strSQL)
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>\" %> <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>
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)
30. december 2001 - 11:41
#10
heller ikke...
30. december 2001 - 11:47
#11
Er du sikker på at Request.Form(\"SpilID\") har en tal værdi ?
30. december 2001 - 11:49
#12
Ja, Autonummereret langt heltal
30. december 2001 - 11:54
#13
Ja, men ikke i din database, men i asp-filen ?
30. december 2001 - 11:55
#14
Der er ingen formatering i asp-filen.
30. december 2001 - 11:57
#15
det jeg mente var, hvordan kaller du denne side ? hvilken side kommer resultaterne fra ???
30. december 2001 - 11:59
#16
Siden opdater kaldes fra siden rediger og resultaterne kommer fra en access db
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 ???
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...
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\")
30. december 2001 - 12:08
#20
ja, men kanppen hedder ikke \"SpilID\" - den hedder \"edit\"
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\'
30. december 2001 - 12:14
#22
oker Pris et tal i databsen ?
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
30. december 2001 - 12:17
#24
Pris er et tal af typen Valuta i db\'en
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
30. december 2001 - 12:24
#26
Det er desværre ikke altid nok at tro... Det virkede ikke.
30. december 2001 - 12:25
#27
ok, jeg giver op...
30. december 2001 - 12:29
#28
Det gør jeg også. Sletter skidtet og begynder forfra. Tusind tak for indsatsen.
30. december 2001 - 12:36
#29
du behøver da ikke at give point, du fik jo ikke løst dit problem rigtigt ?
30. december 2001 - 12:38
#30
Næh, men jeg er en flink mand der også belønner arbejdsindsatsen.
30. december 2001 - 12:42
#31
ok, mange tak!!! - og godt nytår ;)
Kurser inden for grundlæggende programmering