Avatar billede mrjowns Novice
15. august 2001 - 09:21 Der er 22 kommentarer og
2 løsninger

ASP Newbie: INSERT INTO problemer

Hvad er der galt her:

Dim Conn
    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\\\\Nne00\\wwwroot\\database\\site-ka\\suporg.mdb;\"

    User = request.servervariables(\"LOGON_USER\")
    Value = 1

    Sql = \"INSERT INTO Session (User, Tid, Value)\"
    Sql = Sql & \" VALUES(\'\" & User & \"\',#\" & Now & \"#,\'\" & Value & \"\')\"
    Conn.Execute Sql

    Sql = \"SELECT * FROM Session ORDER BY Tid DESC\"
    Conn.Execute(Sql)
Avatar billede mrjowns Novice
15. august 2001 - 09:23 #1
Browser skriver at der er en fejl i INSERT STATEMENT.... \"Sql = Sql & \" VALUES...\"
Avatar billede nil.dk Nybegynder
15. august 2001 - 09:23 #2
Value er en talvariabel.. så skal du ikke have plinger onkring den.
Avatar billede oswald Nybegynder
15. august 2001 - 09:24 #3
Prøv med \'\' istædet for \'
Avatar billede mrjowns Novice
15. august 2001 - 09:27 #4
Om jeg bruger enkelt eller dobbeæt plinger omkring VALUE giver den mig følgende fejl: Microsoft VBScript compilation (0x800A03EA)
Syntax error
Avatar billede mrjowns Novice
15. august 2001 - 09:28 #5
dobbeæt = dobbelt .... DOH
Avatar billede nil.dk Nybegynder
15. august 2001 - 09:28 #6
prøv at lave en udskrift af sql-strengen så vi kan se hvad der sker..
Avatar billede mrjowns Novice
15. august 2001 - 09:32 #7
OK, totalt newbie...! Hvordan gør jeg det? :-)

    Sql = \"INSERT INTO Session (User, Tid, Value)\"
    Sql = Sql & VALUES(\'\" & User & \"\',#\" & Now & \"#,\'\" & Value & \"\')
    Conn.Execute Sql
Avatar billede oswald Nybegynder
15. august 2001 - 09:34 #8
Sql = \"INSERT INTO Session (User, Tid, Value)\"
    Sql = Sql & VALUES(\'\" & User & \"\',#\" & Now & \"#,\'\" & Value & \"\')
    response.write Sql
Avatar billede nil.dk Nybegynder
15. august 2001 - 09:34 #9
Prøv at udskifte den sidste sætning med en
Response.Write sql

så udskriver den strengen på skærmen og man kan bedre se om der er fejl
Avatar billede mrjowns Novice
15. august 2001 - 09:38 #10
Ok, jeg skriver dette:

    Sql = \"INSERT INTO Session (User, Tid, Value)\"
    Sql = Sql & VALUES(\'\" & User & \"\',#\" & Now & \"#,\'\" & Value & \"\')
    Response.Write Sql
    \'Conn.Execute Sql

...men får stadig en fejlside:

Microsoft VBScript compilation (0x800A03EA)
Syntax error
Avatar billede oswald Nybegynder
15. august 2001 - 09:40 #11
I den sidste kode blok manglede der to \"\'er. men det gjorde der ikke i den første. Kunne der på en eller anden måde være fejlen?

Sql = \"INSERT INTO Session (User, Tid, Value)\"
    Sql = Sql & --> \" <-- VALUES(\'\" & User & \"\',#\" & Now & \"#,\'\" & Value & \"\') --> \" <--

Kan du forøvrigt ikke sende hele fejlmeddelelsen? \'0x800A03EA\' er kompilerens gennerele måde at brække sig på.
Avatar billede mrjowns Novice
15. august 2001 - 09:45 #12
Jeg har nu prøvet:

    Sql = \"INSERT INTO Session (User, Tid, Value)\"
    Sql = Sql & \" VALUES(\'\" & User & \"\',#\" & Now & \"#,\'\" & Value & \"\')\"
    \'Response.Write Sql
    Conn.Execute Sql

og får stadig fejlen:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
Avatar billede nil.dk Nybegynder
15. august 2001 - 09:46 #13
Jeg tror jeg ved hvad det er...

Du må ikke kalde din tabel for Session... Session er jo et \"optaget\" ord i ASP
Avatar billede oswald Nybegynder
15. august 2001 - 09:47 #14
Jamen det er også en anden fejl. Så er vi kommet over det første problem. Prøv nu.

Sql = \"INSERT INTO Session (User, Tid, Value)\"
Sql = Sql & \" VALUES(\'\'\" & User & \"\'\',#\" & Now & \"#,\" & Value & \")\"
Avatar billede oswald Nybegynder
15. august 2001 - 09:48 #15
Det er ikke noget problem at kalde en tabel for session da det kun er databasen der ser den. Et andet problem kunne være at kalde Value for Value (Men jeg ved ikke om det er en reserveret ord i access)
Avatar billede mrjowns Novice
15. august 2001 - 09:50 #16
Jeg får samme fejl som sidst....! Jeg prøver lige at omdøbe value til noget andet!
Avatar billede oswald Nybegynder
15. august 2001 - 09:54 #17
Prøv lige at udskrive SQL igen.
Avatar billede erikjacobsen Ekspert
15. august 2001 - 09:55 #18
Du har 2 \'-er omkring din user. Ret
Sql = Sql & \" VALUES(\'\'\" & User & \"\'\',#\" & Now & \"#,\" & Value & \")\"
til
Sql = Sql & \" VALUES(\'\" & User & \"\',#\" & Now & \"#,\" & Value & \")\"
Avatar billede oswald Nybegynder
15. august 2001 - 09:56 #19
Ja sorry. det er rigtigt at det er forkert. der skal kun være en \'.
Avatar billede mrjowns Novice
15. august 2001 - 09:59 #20
Undskyld forvirringen! Efter omdøbning og sletning ser min streng sådan ud:

    User = request.servervariables(\"LOGON_USER\")
    Rettigheder = 1

    Sql = \"INSERT INTO Session (User, Rettigheder)\"
    Sql = Sql & \"VALUES(\'\" & User & \"\',\'\" & Rettigheder & \"\')\"
    \'Response.Write Sql
    Conn.Execute Sql

...men nu får jeg fejlen:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Field \'Session.User\' cannot be a zero-length string.
Avatar billede oswald Nybegynder
15. august 2001 - 10:00 #21
Det er sikkert fordi du kører Anonymous access, og derfor bliver brugeren ikke fundet.
Avatar billede mrjowns Novice
15. august 2001 - 10:02 #22
Hvordan ændrer jeg det - hvis det er muligt?
Avatar billede oswald Nybegynder
15. august 2001 - 10:07 #23
Du skal have adgang til at administrerer din Webserver. Hvis du har det skal du finde Internet service maneger oppe under administrative tools(WIN2000). Så vælger du Properties for din webserver, Klikker på Directory Security, Edit under \'Anonymous....\' og her fjerner du Krydset ved Anonymous access og sætter det ved \'Basic authe...\' eller \'Integrated wind...\' (Igen win2000). Nt er lidt anderledes.
Avatar billede mrjowns Novice
15. august 2001 - 10:12 #24
Ok, mange tak for hjælpen!
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