Avatar billede kkd Nybegynder
29. juni 2004 - 13:40 Der er 10 kommentarer og
1 løsning

Insert into kommando med syntax fejl - men jeg kan ikke finde den

Følgende SQL:
strUserData="INSERT into Brugere (Logon, Password, NavnFor, NavnEfter, FdsDato, By, Land, Email) values('" & strLogonNavn & "', '" & strPassword & "', '" & NavnFor & "', '" & NavnEfter & "', #" & FDsDato & "#, '" & request.Form("By") & "', '" & request.Form("Land") & "', '" & strEmail & "')"

giver følgende svar, når man response.write(strUserData):
INSERT into Brugere (Logon, Password, NavnFor, NavnEfter, FdsDato, By, Land, Email) values('logon', 'kode', 'Palle', 'Pallesen', #1990-10-10#, 'MinBy', 'Danmark', 'mail@mail.dk')

og en Syntax error in INSERT INTO statement. meddelelse...
HVORFOR?

/kkd :oD
Avatar billede fennec Nybegynder
29. juni 2004 - 13:42 #1
By er et reserveret ord.

strUserData="INSERT into Brugere (Logon, Password, NavnFor, NavnEfter, FdsDato, [By], Land, Email) values('" & strLogonNavn & "', '" & strPassword & "', '" & NavnFor & "', '" & NavnEfter & "', #" & FDsDato & "#, '" & request.Form("By") & "', '" & request.Form("Land") & "', '" & strEmail & "')"
Avatar billede kkd Nybegynder
29. juni 2004 - 13:56 #2
hmmm... nu virker det, sådan næsten da.
Jeg ændrede By til City, men nu får jeg en fejlmeddelelse der siger
Syntax error in field definition.
-men den sætter alligevel ind i databasen!!!
Avatar billede fennec Nybegynder
29. juni 2004 - 14:01 #3
Du behøvede ikke at ændre navnet. Du kunne bare have sat [] omkring. Det fortælle databasen at det er en kolonne/tabel, der er tale om.

Er det samme linje-nr du får fejlen i??
Avatar billede kkd Nybegynder
29. juni 2004 - 15:38 #4
Nej det var det nemlig ikke.... DO'H

Tak for hjælpen, den anden fejl er nem nok.... tror jeg :-|
Avatar billede fennec Nybegynder
29. juni 2004 - 15:40 #5
no prob :o)
Avatar billede fennec Nybegynder
29. juni 2004 - 15:41 #6
Bare sig til hvis du ikke kan få den anden fejl løst.
Avatar billede kkd Nybegynder
02. juli 2004 - 18:12 #7
Ha... det kan jeg ikke....
Det er en Create table kommando:
strLogtabel="Create table "&strLogon&"Logbog (DykNr integer, Dato DateTime, StedLokation varchar(255), StedLand varchar(150), Kommentar memo NULL, BarStart varchar(5) NULL, BarSlut varchar(5) NULL, TidNed varchar(5) NULL, TidOp varchar(5) NULL, TidBund varchar(15) NULL, Maxdybde varchar(5) NULL, OverfladeInterval varchar(15) NULL, MGFoer varchar(1) NULL, MGEfter varchar(1) NULL, RNT varchar(10) NULL, ABT varchar(10) NULL, TBT varchar(10) NULL, Vaegt varchar(5) NULL, 5mStop varchar(10) NULL, Vejr varchar(20) NULL, TempLuft decimal(5,1), TempOverflade decimal(5,1), TempBund decimal(5,1), Sigt decimal(5,1), AttestNavn varchar(255) NULL, AttestNr varchar(50) NULL, AttestType varchar(100) NULL, CONSTRAINT pk PRIMARY KEY ( DykNr ))"

problemet ligger i de 4 decimal-felter, der skal oprettes, udelader jeg dem, funker det fint...
Avatar billede kkd Nybegynder
02. juli 2004 - 18:57 #8
... det er en Syntax error in field definition-meddelelse der kommer!
Avatar billede erikjacobsen Ekspert
02. juli 2004 - 19:03 #9
Et navn kan ikke starte med 5: 5mStop
Er det access kan du dog skrive [5mStop]

Normalt er det en dårlig ide at oprette tabeller på runtime. Du bør hellere
have en tabel med et ekstra felt, svarende til strLogon.
Avatar billede kkd Nybegynder
02. juli 2004 - 19:08 #10
nevermind - har fikset den!

Tak for hjælpen
Avatar billede kkd Nybegynder
02. juli 2004 - 19:10 #11
... og det går altså ganske udemærket at have (og oprette) feltet 5mStop i en access-database med den sætning jeg har vist!

... Jeg brugte numeric i stedet for decimal - og nu virker det!
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