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 ...
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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\"\"))\"
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!
Du kan ikke bruge by. Døb den om eller skriv [by]
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
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\")\')
Erik >> Det tror jeg faktisk også er fejlen, og jeg overså den :( .. heeh..
I nederste version skal du nu skrive strSQL = strSQL & Request.Form(\"Adresse\") & \", \" strSQL = strSQL & Request.Form(\"Navn\") & \", \" strSQL = strSQL & Request.Form(\"By\") & \", \" ...osv...
strSQL = strSQL & \"\'\" & Request.Form(\"\"Ekstra\"\")& \"\')\" Sårn skal de stå!
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
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 ... ?
01. juni 2001 - 00:37
#12
By er som tidligere sagt et reserveret ord. -Per
01. juni 2001 - 00:38
#13
Også selvom jeg lige har rettet den fejl med at der er \' \' om det sidste tal...
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
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?
01. juni 2001 - 00:52
#16
Er sidste felt et tal, må der ikke stå \'\'
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
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...
01. juni 2001 - 00:59
#19
Hvorfor skal postnummer være et tal? Hvad hvis man bor i S-12345, eller D-55429 ??
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 ???
01. juni 2001 - 01:02
#21
Det skal du sætte i din Access. \"Tillad nul-længde\"
01. juni 2001 - 01:04
#22
JAAAAA!!! Det virker!!! Tak for hjælpen allesammen!!!! Point går til erikjacobsen og perla ...
01. juni 2001 - 01:09
#23
:)
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser