Avatar billede langfinger Nybegynder
25. december 2003 - 22:17 Der er 10 kommentarer og
1 løsning

En SQL - fejl!

Hej

Function fixQuotes( theString )
    fixQuotes = Replace( theString, "'", "''" )
End Function

strSQL = "Insert into konkurrencesvar (konkurrenceid, ip, svar, navn, adresse, post, by, mail)"
strSQL = strSQL & " values('" & request.querystring("id") & "', "
strSQL = strSQL & "'" & request.ServerVariables("REMOTE_ADDR") & "', "
strSQL = strSQL & "'" & replace(request.form("svar"),"'","''") & "', "
strSQL = strSQL & "'" & replace(request.form("navn"),"'","''") & "', "
strSQL = strSQL & "'" & replace(request.form("adresse"),"'","''") & "', "
strSQL = strSQL & "'" & replace(request.form("post"),"'","''") & "', "
strSQL = strSQL & "'" & replace(request.form("by"),"'","''") & "', "
strSQL = strSQL & "'" & replace(request.form("mail"),"'","''") & "')"
Conn.Execute(strSQL)

Men jeg får fejlen:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.


Help me!

Mvh.

Langfinger
Avatar billede ztyxx Nybegynder
25. december 2003 - 22:18 #1
by er et reserveret ord i sql, så lav det om til eks. bynavn
Avatar billede Slettet bruger
25. december 2003 - 22:19 #2
Du skal ikke have "" uden om INSTERT INTO...
Avatar billede eagleeye Praktikant
25. december 2003 - 22:19 #3
eller man kan sætte [] omkring [by]
Avatar billede tuctoh Nybegynder
25. december 2003 - 22:19 #4
eller bare skriv [by] i SQLen:

strSQL = "Insert into konkurrencesvar (konkurrenceid, ip, svar, navn, adresse, post, [by], mail)"


pac, jo man skal
Avatar billede langfinger Nybegynder
25. december 2003 - 22:21 #5
Efter at have sat [] omkring by får jeg fejlen:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
Avatar billede eagleeye Praktikant
25. december 2003 - 22:23 #6
Hvis du har nogle tal kolonne skal der ikke ' omkring eksvis hvis konkurrenceid en tal kolonne så prøv uden ' i vavlues delen:

strSQL = strSQL & " values(" & request.querystring("id") & ", "
Avatar billede langfinger Nybegynder
25. december 2003 - 22:25 #7
strSQL = "Insert into konkurrencesvar (konkurrenceid, ip, svar, navn, adresse, post, [by], mail)"
strSQL = strSQL & " values(" & request.querystring("id") & ", "
strSQL = strSQL & "'" & request.ServerVariables("REMOTE_ADDR") & "', "
strSQL = strSQL & "'" & replace(request.form("svar"),"'","''") & "', "
strSQL = strSQL & "'" & replace(request.form("navn"),"'","''") & "', "
strSQL = strSQL & "'" & replace(request.form("adresse"),"'","''") & "', "
strSQL = strSQL & "" & replace(request.form("post"),"'","''") & ", "
strSQL = strSQL & "'" & replace(request.form("by"),"'","''") & "', "
strSQL = strSQL & "'" & replace(request.form("mail"),"'","''") & "')"
Conn.Execute(strSQL)

Fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
Avatar billede eagleeye Praktikant
25. december 2003 - 22:27 #8
Prøv at udskirve SQL sætningen  i stedet for at execute den så det tit lettere at se evt fejl.

Response.Write strSQL
Response.End
Conn.Execute(strSQL)

Er post nummeretet udfyldt på formen?
Avatar billede eagleeye Praktikant
25. december 2003 - 22:30 #9
Hvis din SQL ser fin ud, men data til alle kolinner så prøv også at tjekke at alle kolonnenavn er skrevet rigtigt eks: mail eller email?
Prøv evt at vise det output du får her.
Avatar billede langfinger Nybegynder
25. december 2003 - 22:31 #10
Fandt med hjælp fra eagleeyes forklaring fejlen,
want points ?
Avatar billede eagleeye Praktikant
25. december 2003 - 22:32 #11
ok, jeg kan da smide et svar så bestemmer du ;)
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