Avatar billede bjoern_bertelsen Nybegynder
25. oktober 2005 - 21:48 Der er 6 kommentarer og
1 løsning

set mig blind på insert into

Jeg har en side der opretter nye brugere i en database. Jeg udfylder selv 4 parametre fra forms, og min kode indsætter selv et Id (autonummerering), og så får jeg koden til at indsætte teksten "mangler" i alle andre felter i rækken.

Et eller andet sted i denne kode er der et problem. Jeg får fejlen  "Too few parameters. Expected 1." og den henviser til min "conn.execute(strSQL)" linjen.

koden er som følger:

<html><head></head><body stylesrc="main.htm">

<!--#include file ="opretforbindelse.asp" -->

<%

dim Id, brugernavn, password, fornavn, email

' vi tæller op hvad det højeste Id der er for brugere i databasen
strSQL = "SELECT MAX(brugere.Id) FROM brugere;"
Set rs = Conn.Execute(strSQL)
' for at vores nye tag vi opretter IKKE får et Id der er brugt i forvejen, lægger vi +1 til den fundne værdi
Id= rs.fields("Expr1000")+1

brugernavn=request.form("brugernavn")
password=request.form("password")
fornavn=request.form("fornavn")
email=request.form("email")

response.write Id & "<br>"
response.write brugernavn &"<br>"
response.write password&"<br>"
response.write fornavn&"<br>"
response.write email

strSQL = "Insert Into brugere ("
strSQL = strSQL & "beskrivelse, "
strSQL = strSQL & "beskrivelse2, "
strSQL = strSQL & "brugernavn, "
strSQL = strSQL & "password, "
strSQL = strSQL & "fornavn, "
strSQL = strSQL & "efternavn, "
strSQL = strSQL & "fodselsdag, "
strSQL = strSQL & "adresse, "
strSQL = strSQL & "postnr, "
strSQL = strSQL & "byen, "
strSQL = strSQL & "email, "
strSQL = strSQL & "msn, "
strSQL = strSQL & "tlf, "
strSQL = strSQL & "mobil, "
strSQL = strSQL & "Bil, "
strSQL = strSQL & "Arbejde, "
strSQL = strSQL & "boern, "
strSQL = strSQL & "aegtestatus, "
strSQL = strSQL & "billede, "
strSQL = strSQL & "billede1, "
strSQL = strSQL & "billede2, "
strSQL = strSQL & "Id) "

strSQL = strSQL & "values("
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "'"&brugernavn&"', "
strSQL = strSQL & "'"&password&"', "
strSQL = strSQL & "'"&fornavn&"', "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "'"&email&"', "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "mangler, "
strSQL = strSQL & "'"&Id&"')"

Conn.Execute(strSQL)

response.redirect "hvemvier.asp"

Conn.Close
Set Conn = Nothing

%>

</body></html>


Som det ses skriver jeg lige for sjov mine variable ud inden jeg bruger insert into, og de virker, så det er ikke mine variable der laver ged.

Selve databasen er bygget op således at alle kolonnerne er tekst-kolonner, pånær beskrivelse og beskrivelse2 som er "notat" for at få flere tegn med, og Id som er autonummerering.

100 point til den finder fejlen!
Avatar billede bjoern_bertelsen Nybegynder
25. oktober 2005 - 21:50 #1
ps. jeg havde koden til at virke på et tidspunkt, hvor jeg faktisk fik alle 22 felter pånær Id, med ind fra formularen. Jeg ville gerne gøre det simplere - så det var nemmere at oprette brugere hurtigt. Men et eller andet er gået galt.
Avatar billede nielle Nybegynder
25. oktober 2005 - 21:53 #2
Du skal i hvert fald have '-tegn rundtom alle dine mangler-værdier.
Avatar billede nielle Nybegynder
25. oktober 2005 - 21:53 #3
Prøv i øvrigt også at udskrive selve SQL-sætningen før at du udføre den.
Avatar billede bjoern_bertelsen Nybegynder
25. oktober 2005 - 21:58 #4
NEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJ

Det er da det man kan kalde en "million-dollar-mistake"

hmm gud forband de der små '''''''''''''''''

nå pinligt, men smid lige et svar :D
Avatar billede bjoern_bertelsen Nybegynder
25. oktober 2005 - 21:59 #5
hvordan udskriver man en "insert into" kommando? Det var jeg ikke klar over man kunne...
Avatar billede nielle Nybegynder
25. oktober 2005 - 22:07 #6
F.eks. sådan her:

response.write "DEBUG: " & strSQL & "<br>"

Somme tider hjælper det simpelthen at se hvordan den færdige SQL-sætning ser ud. I 9 ud af 10 tilfælde skyldes underlig databaseopførsel at SQL'en indeholder noget andet end det man tror.

... og et svar :^)
Avatar billede bjoern_bertelsen Nybegynder
25. oktober 2005 - 22:09 #7
det vil jeg lige prøve :D takker!
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