Avatar billede kotelet Nybegynder
01. juni 2001 - 00:06 Der er 21 kommentarer og
2 løsninger

Insert into

Jeg bruger ASP til at lægge ting ind i min Acces database...
Når jeg prøver at lægge nogle data ind jeg har hentet fra en FORM brugeren har udfyldt får jeg denne besked:

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

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

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

/div/data/exec_input.asp, line 48

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

Linien som den brokker sig over er denne:

strSQL = \"Insert into \" & Request.Form(\"UKategori\") & \" (Adresse, Navn, By, Postnr, Bemaerkning, Com, Web, Ekstra) values(Request.Form(\'Adresse\'), Request.Form(\'Navn\'), Request.Form(\'By\'), Request.Form(\'Postnr\'), Request.Form(\'Bemaerkning\'), Request.Form(\'Com\'), Request.Form(\'Web\'), Request.Form(\'Ekstra\'))\"

Hvor er den gal? Det VIL bare ikke du ...
Avatar billede kotelet Nybegynder
01. juni 2001 - 00:15 #1
Jeg har også prøvet at stille det op sådan her, for at gøre det mere overskueligt:



strSQL = \"Insert into \" & Request.Form(\"Ukategori\") & \" (\"
   
    strSQL = strSQL & \"Adresse, \"
    strSQL = strSQL & \"Navn, \"
    strSQL = strSQL & \"By, \"
    strSQL = strSQL & \"Postnr, \"
    strSQL = strSQL & \"Bemaerkning, \"
    strSQL = strSQL & \"Com, \"
    strSQL = strSQL & \"web, \"
    strSQL = strSQL & \"Ekstra) \"

    strSQL = strSQL & \"values( \"

    strSQL = strSQL & \"Request.Form(\"\"Adresse\"\"), \"
    strSQL = strSQL & \"Request.Form(\"\"Navn\"\"), \"
    strSQL = strSQL & \"Request.Form(\"\"By\"\"), \"
    strSQL = strSQL & \"Request.Form(\"\"Postnr\"\"), \"
    strSQL = strSQL & \"Request.Form(\"\"Bemaerkning\"\"), \"
    strSQL = strSQL & \"Request.Form(\"\"Com\"\"), \"
    strSQL = strSQL & \"Request.Form(\"\"Web\"\"), \"
    strSQL = strSQL & \"Request.Form(\"\"Ekstra\"\"))\"
   
   
Avatar billede nomiz Nybegynder
01. juni 2001 - 00:15 #2
sql, nu ?!?!?
Avatar billede kornfreak Nybegynder
01. juni 2001 - 00:16 #3
Har du prøvet at printe Request.Form(\"Ukategori\") ud og se om den mangler?

Prøv også response.write(strSQL) og se om den er rigtig!
Avatar billede erikjacobsen Ekspert
01. juni 2001 - 00:20 #4
Du kan ikke bruge by. Døb den om eller skriv [by]
Avatar billede perla Nybegynder
01. juni 2001 - 00:21 #5
De bedste er at lægge de ind i variabler før SQL strengen.
alle strengvariabler i values skal der \' \' om

Request.Form(\"UKategori\") eller Request.Form(\'UKategori\') . Tror ikke det virker med \' \'

-Per
Avatar billede kotelet Nybegynder
01. juni 2001 - 00:21 #6
Hej

Af en eller anden grund vil Request.Form(\"alle\") ikke du! ... se her hvad den spytter ud når jeg skriver response.write strSQL (Det er når min strSQL ser således ud:

    strSQL = \"Insert into \" & Request.Form(\"UKategori\") & \" (\"
   
    strSQL = strSQL & \"Adresse, \"
    strSQL = strSQL & \"Navn, \"
    strSQL = strSQL & \"By, \"
    strSQL = strSQL & \"Postnr, \"
    strSQL = strSQL & \"Bemaerkning, \"
    strSQL = strSQL & \"Com, \"
    strSQL = strSQL & \"web, \"
    strSQL = strSQL & \"Ekstra) \"

    strSQL = strSQL & \"values( \"

    strSQL = strSQL & \"\'Request.Form(\"\"Adresse\"\")\', \"
    strSQL = strSQL & \"\'Request.Form(\"\"Navn\"\")\', \"
    strSQL = strSQL & \"\'Request.Form(\"\"By\"\")\', \"
    strSQL = strSQL & \"\'Request.Form(\"\"Postnr\"\")\', \"
    strSQL = strSQL & \"\'Request.Form(\"\"Bemaerkning\"\")\', \"
    strSQL = strSQL & \"\'Request.Form(\"\"Com\"\")\', \"
    strSQL = strSQL & \"\'Request.Form(\"\"Web\"\")\', \"
    strSQL = strSQL & \"\'Request.Form(\"\"Ekstra\"\")\')\"

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

strSQL udskrevet ser sådan ud:

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

Insert into Lokaler (Adresse, Navn, By, Postnr, Bemaerkning, Com, web, Ekstra) values( \'Request.Form(\"Adresse\")\', \'Request.Form(\"Navn\")\', \'Request.Form(\"By\")\', \'Request.Form(\"Postnr\")\', \'Request.Form(\"Bemaerkning\")\', \'Request.Form(\"Com\")\', \'Request.Form(\"Web\")\', \'Request.Form(\"Ekstra\")\') 
Avatar billede kornfreak Nybegynder
01. juni 2001 - 00:22 #7
Erik >> Det tror jeg faktisk også er fejlen, og jeg overså den :( .. heeh..
Avatar billede erikjacobsen Ekspert
01. juni 2001 - 00:22 #8
I nederste version skal du nu skrive

strSQL = strSQL & Request.Form(\"Adresse\") & \", \"
strSQL = strSQL & Request.Form(\"Navn\") & \", \"
strSQL = strSQL & Request.Form(\"By\") & \", \"

...osv...
Avatar billede kornfreak Nybegynder
01. juni 2001 - 00:23 #9
strSQL = strSQL & \"\'\" & Request.Form(\"\"Ekstra\"\")& \"\')\"

Sårn skal de stå!
Avatar billede erikjacobsen Ekspert
01. juni 2001 - 00:24 #10
eller rettere (suk...)

strSQL = strSQL & \"\'\" & Request.Form(\"Adresse\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"Navn\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"By\") & \"\', \"

men hvis feltet er et tal, skal der ikke \'....\' rundt om
Avatar billede kotelet Nybegynder
01. juni 2001 - 00:34 #11
Nu har jeg gjort som der er blevet sagt .. og output af Response.Write strSQL er:

Insert into Lokaler (Adresse, Navn, By, Postnr, Bemaerkning, Com, web, Ekstra) values( \'Testgården 13\', \'Testlokalerne\', \'Testby\', 33333, \'test\', \'32423452\', \'www.test.dk\', \'\')

Der er to \' \' til sidst uden noget i ... men det er bare fordi at Request.Form(\"Ekstra\") er tom ... (det kan man godt, ikke?)

Alligevel får jeg meddelelsen


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

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

/div/festdata/exec_input.asp, line 70

Hvorfor ... ?
Avatar billede perla Nybegynder
01. juni 2001 - 00:37 #12
By er som tidligere sagt et reserveret ord.

-Per
Avatar billede kotelet Nybegynder
01. juni 2001 - 00:38 #13
Også selvom jeg lige har rettet den fejl med at der er \' \' om det sidste tal...
Avatar billede erikjacobsen Ekspert
01. juni 2001 - 00:38 #14
Insert into Lokaler (Adresse, Navn, [By], Postnr, Bemaerkning, Com, web, Ekstra) values( \'Testgården 13\', \'Testlokalerne\', \'Testby\', 33333, \'test\', \'32423452\', \'www.test.dk\', \'\')

skal det blive til
Avatar billede kotelet Nybegynder
01. juni 2001 - 00:51 #15
(Jeg lægger 20 point ekstra til dette )spørgsmål ...

Nu har jeg udskiftet med City... både i databasen og i min FORM og i exec_input.asp

strSQL ser nu sådan her ud:

Insert into Under Kategori (Adresse, Navn, City, Postnr, Bemaerkning, Com, web, Ekstra) values( \'Testgården 13\', \'Testlokalerne\', \'Testby\', 3333, \'test\', 33333333, \'www.test.dk\', \'\')

Men jeg får stadig fejlmedd.

Hvorfor?
Avatar billede erikjacobsen Ekspert
01. juni 2001 - 00:52 #16
Er sidste felt et tal, må der ikke stå \'\'
Avatar billede erikjacobsen Ekspert
01. juni 2001 - 00:53 #17
Og så kan du måske også skrive [Under Kategori] for der må ikke være mellemrum
i navne på tabeller
Avatar billede kotelet Nybegynder
01. juni 2001 - 00:57 #18
Ja det sidste vec jeg .. det var en lille dum fejl, som jeg bare lige lavede mens jeg skulle vise jer det ... men det med tallene fik mig til at tænke ... jeg havde glemt at sætte feltet Postnr til at være tal ... Jeg prøver lige om lidt .. jeg er ved at uploade databasen igen...
Avatar billede erikjacobsen Ekspert
01. juni 2001 - 00:59 #19
Hvorfor skal postnummer være et tal? Hvad hvis man bor i S-12345, eller D-55429 ??
Avatar billede kotelet Nybegynder
01. juni 2001 - 01:00 #20
NU er den der NÆSTEN!!!

JEg får denne besked nu:

[Microsoft][ODBC Microsoft Access Driver] Field \'Lokaler.Ekstra\' cannot be a zero-length string.

Er det ikke muligt at GØRE det muligt at den må være nul bogstaver lang ???
Avatar billede erikjacobsen Ekspert
01. juni 2001 - 01:02 #21
Det skal du sætte i din Access. \"Tillad nul-længde\"
Avatar billede kotelet Nybegynder
01. juni 2001 - 01:04 #22
JAAAAA!!! Det virker!!! Tak for hjælpen allesammen!!!! Point går til erikjacobsen og perla ...
Avatar billede erikjacobsen Ekspert
01. juni 2001 - 01:09 #23
:)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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