Avatar billede kpl Nybegynder
08. februar 2003 - 01:22 Der er 8 kommentarer og
1 løsning

Hvad betyder denne databasefejl:

Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/brugtbors/postad.asp, line 77


------------------------

Linie 77 er den sidste af disse linier:

Set GobjConnect = server.createobject("ADODB.Connection")
        GobjConnect.open gsConnect

            sSQL = ""
            sSQL = sSQL & "INSERT INTO adcontent (TopicID, name, email, address, city, state, zip, adtitle, content, link, dateposted, image, price) "
            sSQL = sSQL & "VALUES(" & SQLVal(catID) & ", "
            sSQL = sSQL & SQLStr(sName) & ", "
            sSQL = sSQL & SQLStr(sEmail) & ", "
            sSQL = sSQL & SQLStr(sAddress) & ", "
            sSQL = sSQL & SQLStr(sCity) & ", "
            sSQL = sSQL & SQLStr(sState) & ", "

            sSQL = sSQL & SQLStr(sZip) & ", "
            sSQL = sSQL & SQLStr(sTitle) & ", "
            sSQL = sSQL & SQLStr(sContent) & ", "
            sSQL = sSQL & SQLStr(sLink) & ", "
            sSQL = sSQL & SQLDate(Now) & ", "
            sSQL = sSQL & SQLStr(sImage) & ", "
            sSQL = sSQL & SQLVal(cPrice) & " )"

            GobjConnect.Execute(sSQL)
Avatar billede eagleeye Praktikant
08. februar 2003 - 01:30 #1
Som regl betyder det man har stavet et kolonnenavn forkert eller man bruger et reserveret ord som kolonnenavn..

Eksvis er name reserveret ord i Access, så prøv at sætte [] omkrning


sSQL = sSQL & "INSERT INTO adcontent (TopicID, [name], email, address, city, state, zip, adtitle, content, link, dateposted, image, price) "


En anden ting hvis TopicID er autonummer skal den ikke med i SQL sætningen.
Avatar billede eagleeye Praktikant
08. februar 2003 - 01:35 #2
Jeg antger dine functioner SQLStr sætter ' omkring teksten som der skal i SQL når det er en streng?

Hvis du har Access og dateposted skal være lig Now() så brug den Now som er i Access:

Så denne linie:
sSQL = sSQL & SQLDate(Now) & ", "

Bliver til:
sSQL = sSQL & "Now(), "
Avatar billede kpl Nybegynder
08. februar 2003 - 01:53 #3
Desværre - intet af dine forslag virker.
Avatar billede eagleeye Praktikant
08. februar 2003 - 01:55 #4
Hvad gør funktionen SQLStr ?
Avatar billede eagleeye Praktikant
08. februar 2003 - 01:59 #5
Hvilken data type er de forskellige kolonnner.
Avatar billede eagleeye Praktikant
08. februar 2003 - 02:13 #6
Eks på en SQL:

SQL = "INSERT INTO tabel (txtKol, talKol) VALUES ('test her', 232)"

Du kan evt prøve at sætte [] omkring alle kolonne for en sikkerheds skyld:

sSQL = sSQL & "INSERT INTO adcontent ([TopicID], [name], [email], [address], [city], [state], [zip], [adtitle], [content], [link], [dateposted], [image], [price]) "

Har du tjekket at alle kolonnenavne er skrevet korrekt?
Avatar billede kpl Nybegynder
08. februar 2003 - 10:08 #7
Beklager jeg ikke svarede igår (faldt i søvn)

Jeg tror at problemet skyldes databaseadgangen?
Når jeg kører scriptet på et andet webhotel: Dandomain, virker det fint. Når jeg kører det på mit nuværende hos Azero får jeg den omtalte fejl. Og jeg har skriveadgang:  Kan jeg skrive denne databaseforbindelse på en anden måde?:

gsConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=d:\home\mitdomainenavncom\db\XcClassifiedLite.mdb;"
Avatar billede kpl Nybegynder
08. februar 2003 - 10:18 #8
Nej...Nu har jeg prøvet flere forbindelser - ØV
Avatar billede kpl Nybegynder
08. februar 2003 - 10:22 #9
....Har fundet fejlen nu - du havde ret mht. [] - da jeg indsætte på samtlige topics på hele sende og i config  filen  lykkedes det - TAK - Jeg var ved at blive sindsyg!
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