Avatar billede sigurd_h Praktikant
10. juni 2002 - 12:53 Der er 11 kommentarer og
1 løsning

Fejl i SQL

Hej

Hej

<%
strSQL = "Insert into Brugere (Brugernavn) values('" & Request.Form("Brugernavn") & "')"
strSQL = "Insert into Brugere (Fornavn) values('" & Request.Form("Fornavn") & "')"
strSQL = "Insert into Brugere (Efternavn) values('" & Request.Form("Efternavn") & "')"
strSQL = "Insert into Brugere (Password) values('" & Request.Form("Password") & "')"
strSQL = "Insert into Brugere (Email) values('" & Request.Form("Email") & "')"
strSQL = "Insert into Brugere (ICQ) values('" & Request.Form("ICQ") & "')"


Conn.Execute(strSQL)

strSQL = "Insert into brugere (Level, Aktiv) values('1','Ja')"
Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>

Hvad er galt?

Den siger der er fejl i den anden SQL sætning.

Mvh.

Sigurd
Avatar billede tmceu Praktikant
10. juni 2002 - 12:56 #1
Hvis feltet aktiv er true/false, skal værdien af feltet i dit SQL statement være true/false eller -1/0 og ikke 'ja'/'nej' eller 'treu'/'false'
Avatar billede Slettet bruger
10. juni 2002 - 12:56 #2
Conn.Execute(strSQL) vil udelukkende kører den sidste SQL sætning du har der.... Hvad angår den anden linie kan jeg ikke se noget umiddelbart andet end hvis det ikke er noget i "Fornavn"
Avatar billede tmceu Praktikant
10. juni 2002 - 12:59 #3
lacops >> sikke noget vrøvl. Der er 2 seperate executes og strSQL får en ny værdi imellem de 2.
Avatar billede sigurd_h Praktikant
10. juni 2002 - 13:00 #4
Aktiv feltet er et tekst felt
Avatar billede sigurd_h Praktikant
10. juni 2002 - 13:01 #5
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
Avatar billede tmceu Praktikant
10. juni 2002 - 13:07 #6
Level er et reserveret ord i access, det skal derfor angives som [Level]
Avatar billede sigurd_h Praktikant
10. juni 2002 - 13:23 #7
Tilmeld.asp

<table><tr><td>Brugernavn:</td>
<form action="tillykke.asp" method="post">
<td><input type="text" name="Brugernavn" id="knap"></td></tr><tr>
<td>Password:</td>
<td><input type="Password" name="Password" id="knap"></td></tr><tr>
<td>Fornavn:</td>
<td><input type="text" name="Fornavn" id="knap"></td></tr><tr>
<td>Efternavn:</td>
<td><input type="text" name="efternavn" id="knap"></td></tr><tr>
<td>Email:</td>
<td><input type="text" name="Email" id="knap"></td></tr><tr>
<td>ICQ:</td>
<td><input type="text" name="ICQ" id="knap"></td></tr><tr>
<td>
<input type="submit" value="Gem" id="knap">
</form></td></tr></table>

Tilmeldt.asp

strSQL = "Insert into Brugere (Brugernavn) values('" & Request.Form("Brugernavn") & "')"
strSQL = "Insert into Brugere (Password) values('" & Request.Form("Password") & "')"
strSQL = "Insert into Brugere (Fornavn) values('" & Request.Form("Fornavn") & "')"
strSQL = "Insert into Brugere (Efternavn) values('" & Request.Form("Efternavn") & "')"
strSQL = "Insert into Brugere (Email) values('" & Request.Form("Email") & "')"
strSQL = "Insert into Brugere (ICQ) values('" & Request.Form("ICQ") & "')"

Conn.Execute(strSQL)


Men den vil kun tilføje ICQ - hvorfor?!?!
Den vil godt tilføje level og aktiv!
Avatar billede tmceu Praktikant
10. juni 2002 - 13:30 #8
Ahh, nu forstår jeg hvad lacops mente :-)

Alle dine insert statements er enkelt statements og derfor udføres kun den med ICQ. Det skal i stedet være

strSQL = "Insert into Brugere (Brugernavn, [Password], Fornavn, Efternavn, Email, ICQ)"
strSQL = strSQL & " values('" & Request.Form("Brugernavn") & "', "
strSQL = strSQL & "'" & Request.Form("Password") & "', "
strSQL = strSQL & "'" & Request.Form("Fornavn") & "', "
strSQL = strSQL & "'" & Request.Form("Efternavn") & "', "
strSQL = strSQL & "'" & Request.Form("Email") & "', "
strSQL = strSQL & "'" & Request.Form("ICQ") & "')"
Avatar billede sigurd_h Praktikant
10. juni 2002 - 13:33 #9
tmceu >
strSQL = "Insert into Brugere (Brugernavn, [Password], Fornavn, Efternavn, Email, ICQ)"
strSQL = strSQL & " values('" & Request.Form("Brugernavn") & "', "
strSQL = strSQL & "'" & Request.Form("Password") & "', "
strSQL = strSQL & "'" & Request.Form("Fornavn") & "', "
strSQL = strSQL & "'" & Request.Form("Efternavn") & "', "
strSQL = strSQL & "'" & Request.Form("Email") & "', "
strSQL = strSQL & "'" & Request.Form("ICQ") & "')"

Conn.Execute(strSQL)

strSQL = "Insert into brugere (FLevel, Aktiv) values('1','Ja')"
Conn.Execute(strSQL)

Opretter 2 nye rækker!
Avatar billede tmceu Praktikant
10. juni 2002 - 13:39 #10
Ja, for det har du bedt den om, da du laver 2 seperate INSERT statements. Hvis felterne FLevel og aktiv skal indsættes sammen med de øvrige, skal du blot have udvidet dit første statement.

strSQL = "Insert into Brugere (Brugernavn, [Password], Fornavn, Efternavn, Email, ICQ, FLevel, Aktiv)"
strSQL = strSQL & " values('" & Request.Form("Brugernavn") & "', "
strSQL = strSQL & "'" & Request.Form("Password") & "', "
strSQL = strSQL & "'" & Request.Form("Fornavn") & "', "
strSQL = strSQL & "'" & Request.Form("Efternavn") & "', "
strSQL = strSQL & "'" & Request.Form("Email") & "', "
strSQL = strSQL & "'" & Request.Form("ICQ") & "', "
strSQL = strSQL & "'" & "1" & "', "
strSQL = strSQL & "'" & "ja" & "')"
Avatar billede sigurd_h Praktikant
10. juni 2002 - 13:47 #11
Tak for hjælpen
Avatar billede tmceu Praktikant
10. juni 2002 - 13:49 #12
Det var så lidt :-)
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