Avatar billede discowarp9 Nybegynder
12. april 2003 - 15:50 Der er 9 kommentarer og
1 løsning

Manglende parametre i sql...

Jeg er ved at skrive et forum i asp, og til det har jeg brug for at rette en masse i min database. Det virker da også det meste af tiden men så spytter den en fejl om manglende parametre ud når den kører følgende statement:

strSQL = "Update Forums Set Posts = Posts - (Replies + 1) , Topics = Topics - 1 Where ForumID = " & Request.Form("FID")
Conn.Execute(strSQL)

Det skal lige siges at alle variabler er tjekket inden de bruges.
Jeg håber i kan hjælpe mig, det er død irreterende at gå i stå pga. sådan en fejl... :-)
Avatar billede mortrr Praktikant
12. april 2003 - 15:55 #1
"Manglende parameter" viser sig ofte at være en stavefejl i et feltnavn.
Avatar billede discowarp9 Nybegynder
12. april 2003 - 16:02 #2
For at være helt specifik ser fejlen således ud:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

Og jeg kan næsten garantere at det er i 'Where'-betingelsen den er gal... Jeg kan bare ikke se det.
Avatar billede twm Nybegynder
12. april 2003 - 16:05 #3
Prøv udskriv strSQL så er det ofte meget lettere at se fejlen
Avatar billede mortrr Praktikant
12. april 2003 - 16:06 #4
Hvis Request.Form("FID") ikke returnerer noget, vil det typisk give en syntax-fejl. Medmindre den da returnerer noget helt andet end du tror.

Du kan eventuelt prøve at udskrive den:
strSQL = "Update Forums Set Posts = Posts - (Replies + 1) , Topics = Topics - 1 Where ForumID = " & Request.Form("FID")
Response.Write(strSQL)
Conn.Execute(strSQL)

Where delen er der ellers ikke noget galt med.
Avatar billede mortrr Praktikant
12. april 2003 - 16:07 #5
Der skulle lige have været en response.end:
strSQL = "Update Forums Set Posts = Posts - (Replies + 1) , Topics = Topics - 1 Where ForumID = " & Request.Form("FID")
Response.Write(strSQL)
Response.End
Conn.Execute(strSQL)
Avatar billede discowarp9 Nybegynder
12. april 2003 - 16:13 #6
Tjaa... Det giver en meget rigtigt udseende streng. Et eks:
Update Forums Set Posts = Posts - (Replies + 1) , Topics = Topics - 1 Where ForumID = 1
Fejlen er altså godt gemt... (I TO LINIER KODE!!! :-)
Det skal lige siges at der selvfølgelig er en post i Forums med ForumID = 1
Avatar billede discowarp9 Nybegynder
12. april 2003 - 16:19 #7
På min side (det er en side der validerer forms og så opdaterer databasen) er der masser af sådanne statements, men den her er den eneste der giver fejl. De er alle fuldstændig ens, med undtagelse at der her kun er én "Where"-betingelse... Men kan det virkelig give fejl?
Avatar billede mortrr Praktikant
12. april 2003 - 16:26 #8
Prøv lige at dobbelt-checke alle feltnavnene.
Et af dem er stavet forkert.
Avatar billede discowarp9 Nybegynder
12. april 2003 - 17:39 #9
Jeg fandt fejlen; variablen Replies optrådte i sætningen som en streng og ikke en variabel.
Men læg et svar, så skal du få pointene alligevel som tak for hjælpen.
Avatar billede mortrr Praktikant
12. april 2003 - 17:43 #10
Jamen, fy da. ;-)

Og tak.
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger Entreprise Arkitekt

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer