Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 12:14 Der er 22 kommentarer og
2 løsninger

INSERT INTO syntax fejl?

Når jeg prøver at køre følgende ASP script får jeg en syntax fejl, men jeg kan delme ikke se hvad der er galt.. håber I kan :)

ASP
----
<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/cgi-bin/XXXXdb.mdb"))
    'LINJE 5 herunder:
    Conn.Execute("Insert Into tbDates (date) Values('1-1-2000')")

    Set rsDate = Conn.Execute("Select Max(dateID) From tbDates")
    Set rs = Conn.Execute("Insert Into tbNews Values ('"& rsDate(0) &"', '"& Time() &"', 'title', 'content')")

    Conn.Close
    Set Conn = Nothing
    Set rs = Nothing
    Set rsDate = Nothing
%>
----

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (XXXX)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen.
/XXXX.asp, line 5
Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 12:15 #1
PS. ved godt det her er forum for MS SQL, og at det er et ASP script, men linjen der er fejl i er SQL...
Avatar billede ldanielsen Nybegynder
12. juli 2005 - 12:18 #2
Prøv at erstatte ' med # :

Conn.Execute("Insert Into tbDates (date) Values(#1-1-2000#)")

- og check så lige at 2-3-2005 faktisk giver 2. Marts, og ikke 3. Februar :o)
Avatar billede fsconsult.dk Nybegynder
12. juli 2005 - 12:18 #3
Det er formentlig fordi du bruger "date" som kolonnenavn, da det er et reserveret ord.  Du bør enten omdøbe feltet, eller bruge escapetegn til kolonnenavnet (vistnok backquotes).

Dato formattet er muligvis yyyy-mm-dd, afhængig hvilken datatype du har valgt som "date".
Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 12:20 #4
fsconsult: er det et SQL eller ASP ecsape tegn?
Avatar billede fsconsult.dk Nybegynder
12. juli 2005 - 12:22 #5
det er escapetegn til SQL, så den ved du mener kolonnenavnet date og ikke det reserverede ord date ...  er dog ik 100% sikker på at det er backqoutes.
Avatar billede arne_v Ekspert
12. juli 2005 - 12:24 #6
`` er MySQL

i Access er det [] så vidt jeg ved
Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 12:24 #7
Idanielsen: får stadig samme fejl. Dette er en test. Jeg er meget ny i db verdenen, så alt det der fejltjek må komme når jeg ved hvad det er jeg laver :)
Avatar billede arne_v Ekspert
12. juli 2005 - 12:24 #8
prøv og omdøb det felt eller brug [date]
Avatar billede arne_v Ekspert
12. juli 2005 - 12:25 #9
og hvis du har lidt ergaring med ASP og ADO vil jeg foreslå parameters til
at undgå de dato formaterings problemer
Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 12:26 #10
ved at indsætte [date] får jeg flg. fejl:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (XXXX)
[Microsoft][ODBC Microsoft Access-driver] Handlingen skal bruge en opdaterbar forespørgsel

Jeg aner bare ikke hvad det betyder..
Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 12:28 #11
Jeg har lavet date om til currentDate og opdateret asp filen, samme fejl
Avatar billede ldanielsen Nybegynder
12. juli 2005 - 12:28 #12
fsconsult har ret, du skal nok bruge [ ] omkring date, eller allerhelst bruge et andet kolonnenavn,

Må jeg foreslå at bruge et præfiks på kolonnenavne:

dtmDato, strFornavn, intAntal osv.

Du bruger allerede tbTabel kan jeg se :o)

I øvrigt er det lettere at styre datoer m.m. via ADO, sådan:

<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    Set Com = Server.CreateObject("ADODB.Command")
    Set rsDate  = Server.CreateObject("ADODB.Recordset")
    Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/cgi-bin/XXXXdb.mdb"))
    Com.ActiveConnection = Conn
   
    Com.Commandtext = "SELECT TOP 1 [date] FROM tbDates"
    rsDate.Open Com, , 3, 3
    rsDate.AddNew
    rsDate("date") = DateSerial(2000, 1, 1)
    rsDate.Update
    rsDate.Close
    Conn.Close
    Set Conn = Nothing
    Set Com = Nothing
    Set rsDate = Nothing
%>

I øvrigt kunne jeg godt tænke mig at den anden INSERT også vil fejle, for det skal være

Conn.Execute("Insert Into tbNews ([date], intTid, strTitle, strContent) Values ('"& rsDate(0) &"', '"& Time() &"', 'title', 'content')")

- eller hvad dine kolonner nu hedder
Avatar billede ldanielsen Nybegynder
12. juli 2005 - 12:29 #13
Hvilken datatype har currentDate?
Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 12:31 #14
dato og klokkeslet (kort format)
Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 12:33 #15
Jeg har nu fundet flere fejl som er rettet og alt virker :)
Jeg takker for hjælpen.

Fejl:
min mappe (brugere) havde ikke skriverettigheder.
Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 12:34 #16
Alle der vil have points, lav et svar bitten, så deler jeg ligelidt
Avatar billede ldanielsen Nybegynder
12. juli 2005 - 12:45 #17
Skriverettigheder, det havde jeg ikke tænkt på!

Men det var jo også i første omg. syntaksfejlen det handlede om ...
Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 12:47 #18
Helt enig.. I havde ikke stor change for at regne den ud, ud fra de oplysninger jeg gav. Har ikke prøvet at køre en msdb på iis før, så der er sikkert en del ting der popper frem, som jeg kommer mere og mere ind i asp og db verdenen..
Avatar billede jtbroad Nybegynder
12. juli 2005 - 14:22 #19
Du mangler kolonnerne i din Insert into tbnews. du har sprunget direkte til values.

Insert Into tbNews(<her mangler du kolonnerne>) Values(......bla.bla....)
Avatar billede ldanielsen Nybegynder
12. juli 2005 - 14:26 #20
- skrev jeg også 12:28:33
Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 14:28 #21
ja det var en af de fejl jeg fandt, som ikke var relateret til det her spørgsmål :)
mange tak ellers
Avatar billede arne_v Ekspert
12. juli 2005 - 14:33 #22
angivelse af felter er vel kun required hvis der ikke er alle felter

(kan være en god ting alligevel men ...)
Avatar billede tatsudoshi Nybegynder
12. juli 2005 - 15:03 #23
aner det ikke.. den brokkede sig vidst hvis de ikke var der. Der er for mange ting der kan være galt pt til jeg kan sige noget om det :)
Avatar billede jtbroad Nybegynder
12. juli 2005 - 15:15 #24
Heh he. Spiste frokost efter jeg kiggede på spørgsmålet men før jeg svarede så så ikke Idanielsen's svar. :-)
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
Computerworld tilbyder specialiserede kurser i database-management

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



Seneste spørgsmål Seneste aktivitet
I dag 10:28 PDFEngine Af barth i Andet software
I går 22:40 Butte indhold i celler Af lurup i Excel
I går 15:24 Power Query Af djsimonsen i Excel
I går 14:43 Hvis ikke på liste, tilføj værdier til liste Af TheLibrarian i Excel
I går 11:33 Windows 11 Af ranni i Windows