Avatar billede Slettet bruger
08. september 2003 - 10:47 Der er 16 kommentarer og
1 løsning

Syntax error? Hvad er fejlen`?

Jeg har lavet følgende ASP script og når jeg
kører den kommer den med en syntax error på følgende:

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

/sendtest.asp, line 25

Det virkede fint inden jeg lavede importen af "mobil variablen" til databasen. Det er et telefonnummer jeg
skal hente fra URL'en. Før testede jeg det med en
manuelt skrevet nummer og det kom fint i databasen.
Er det fordi at det nu er en variabel der bliver smidt
i databasen at den kommer med en fejl eller hvad
kan grunden være??? Selv koden burde være ok?



<html>
<title>Send mobilstart til database</title>
<head>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

mobil = Request.QueryString("MSISDN")
mobil = replace(mobil, "", "")

strSQL = "Insert into STARTRUTE ("

strSQL = strSQL & "Start, "
strSQL = strSQL & "Mobilnummer)"

strSQL = strSQL & "values( "

strSQL = strSQL & " now, "
strSQL = strSQL & "" & mobil &") "

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
</body>
</html>
Avatar billede ocp Nybegynder
08. september 2003 - 10:50 #1
Husk at sige:

"dim mobil" før du bruger den ;)
Avatar billede mik.mak Nybegynder
08. september 2003 - 10:50 #2
Prøv at lave :
response.write strSQL
response.end

inden Conn.Execute(strSQL)
Avatar billede cesil Nybegynder
08. september 2003 - 10:51 #3
strSQL = "Insert into STARTRUTE ("

strSQL = strSQL & "Start, "
strSQL = strSQL & "Mobilnummer)"

strSQL = strSQL & "values( "

strSQL = strSQL & " now, "
strSQL = strSQL & "'" & mobil &"')"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
Avatar billede sierradriver Nybegynder
08. september 2003 - 10:54 #4
Hvis mobilnummer er et tal i databasen, så brug denne

<html>
<title>Send mobilstart til database</title>
<head>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

mobil = Request.QueryString("MSISDN")
mobil = replace(mobil, "", "")


strSQL = "Insert into STARTRUTE ("

strSQL = strSQL & "Start, "
strSQL = strSQL & "Mobilnummer)"

strSQL = strSQL & "values( "

strSQL = strSQL &  now & ", "
strSQL = strSQL & mobil &")"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>

*********************************************

Eller hvis mobilnummer er tekst, så brug denne

<html>
<title>Send mobilstart til database</title>
<head>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

mobil = Request.QueryString("MSISDN")
mobil = replace(mobil, "", "")


strSQL = "Insert into STARTRUTE ("

strSQL = strSQL & "Start, "
strSQL = strSQL & "Mobilnummer)"

strSQL = strSQL & "values( "

strSQL = strSQL &  now & ", '"
strSQL = strSQL & mobil &"')"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede sierradriver Nybegynder
08. september 2003 - 10:58 #5
Det som fejlen går ud på er en syntax fejl omkring dette område

strSQL = strSQL & " now, "
strSQL = strSQL & "" & mobil &") "

Da Now er en variabel, skal du ikke bruge " efter & i den første linie


Desuden vil det være lettere for dig at finde disse fejl hvis du stiller det op således, hvor du skriver strSQL i een lang linie istedet for flere linier, der iøvrigt også bare sløver siden:



<html>
<title>Send mobilstart til database</title>
<head>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

mobil = Request.QueryString("MSISDN")
mobil = replace(mobil, "", "")

strSQL = "Insert Into STARTRUTE (Start, Mobilnummer) Values(" & Now & ", " & Mobil & ")"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede Slettet bruger
08. september 2003 - 11:16 #6
Super.
Jeg vil lige prøve det med det vuns. :-)
Avatar billede Slettet bruger
08. september 2003 - 11:18 #7
Hi Sierradriver.
Jeg prøvede lige med din løsning men den kommer med følgende fejlmeddelse:

Microsoft VBScript compilation error '800a0400'

Expected statement

/sendtestny.asp, line 16

& Now & ", " & Mobil & ")"
^
Avatar billede Slettet bruger
08. september 2003 - 11:26 #8
Hej igen SIerradriver.

Sorry, det var min fejl.
Det er denne fejlmeddelse den kommer med:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '08-09-2003 11:25:50'.

/hentslutny.asp, line 17
Avatar billede cesil Nybegynder
08. september 2003 - 11:40 #9
strSQL = "Insert Into STARTRUTE (Start, Mobilnummer) Values(#" & Now & "#, " & Mobil & ")"
Avatar billede Slettet bruger
08. september 2003 - 11:48 #10
Det virker stadig ikke?

Burde det ikke virke med de SQL statements i er kommet med?
Det er belastende! :-)
Men dejligt med noget hjælp for jeg er ved at give op!

Jeg har prøvet at fjerne SQL delen og testen om "mobil" variablen
er ok og det er den. Den skriver det MSISDN nummer ud så det
er ret mystisk må man sige. Der må jo været noget galt med
SQL delen? Kan det være i min access database der er noget galt
eller er det ligemeget?

Den giver denne fejlmeddelse!
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

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

/h.asp, line 17


Her er koden som den er nu:

<html>
<title>Send mobilstart til database</title>
<head>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

mobil = Request.QueryString("MSISDN")
mobil = replace(mobil, "", "")

strSQL = "Insert Into STARTRUTE (Start, Mobilnummer) Values(#" & Now & "#, " & Mobil & ")"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede Slettet bruger
08. september 2003 - 11:52 #11
Når jeg kører dette kald

http://10.31.47.25:8300/h.asp?MSISDN=20604528

Så skriver den siden kan ikke vises.

Er det noget i kan bruge til noget???
Avatar billede sierradriver Nybegynder
08. september 2003 - 12:01 #12
Det lader ikke til at vi overhovedet kan komme i kontakt med den server som henvises til via den adresse du har givet os...
Avatar billede Slettet bruger
08. september 2003 - 12:02 #13
Nej det kan i ikke, det er en intern server.
Det var mere for at se om der var noget
galt i kaldet. :-)
Avatar billede sierradriver Nybegynder
08. september 2003 - 12:37 #14
Prøv denne, det burde virke...

Men det kommer an på hvilken datatype, du har sat feltet "mobilnummer" til i databasen! Hvis det ikke virker, så skriv lige hvilken datatype du har sat den til...


<html>
<title>Send mobilstart til database</title>
<head>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

mobil = Request.QueryString("MSISDN")
mobil = replace(mobil, "", "")

strSQL = "Insert Into STARTRUTE (Start, Mobilnummer) Values(#" & Now & "#, '" & Mobil & "')"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede Slettet bruger
08. september 2003 - 13:59 #15
DET ER BARE FOR MYSTISK!!!???

Jeg prøvede med hvad du skrev i ovenstående
og den kom med følgende:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

/paperboy/send.asp, line 18

Datatype er sat til Number
Avatar billede cesil Nybegynder
08. september 2003 - 14:50 #16
Du skal have rettigheder til mappen hvor db ligger

Højreklik på mappen -> Properties -> Security -> Add -> IUSR_MASHINNAME -> Add -> Ok
Avatar billede Slettet bruger
08. september 2003 - 15:06 #17
jahuuuuuuuuuuu... så virker det!!! :-)

Jeg tror simpelhen det har været et problem med min
webserver da jeg prøvede med en anden webserver og
nu kører det!

Men den sidste var rettighedsproblem som
cesil også skrev. :-)

Men supertak til sierradriver, det har været
alt hjælp værd! Du har hjulpet mig til at få
styr på det. Takker! :-)

Her er den færdige kode hvis der er nógen der
er nysgerrige:

<html>
<title>Send mobilstart til database</title>
<head>
</head>
<body>
<%
dim msisdn
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("paper.mdb")
Conn.Open DSN

mobil = Request.QueryString("msisdn")
mobil = replace(mobil, "", "")

strSQL = "Insert Into Startrute (Start, Mobilnummer) Values(#" & Now & "#, '" & mobil & "')"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
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