/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Fejl i SL sætning
Fra : Thomas L. Nielsen


Dato : 21-08-01 20:32

Hej,

Jeg er ved at lave et newsscript og er stødt på en fejl. IIS5 siger:
"Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT
INTO-sætningen.
/newsscript.asp, line 143 "


strSQL = "INSERT INTO News (Header, AUTHOR, NEWS, DATE) " & _
"values('" & Request.Form("txtHeader") & "', '" &
Session("USER") & "', '" & strNews & "', '" & WriteDate & "')"
Conn.Execute(strSQL)


Hvor er fejlen?, jeg kan bare ikke finde den



Thomas





 
 
Janus Klok Lauritsen (21-08-2001)
Kommentar
Fra : Janus Klok Lauritsen


Dato : 21-08-01 21:23

Prøv at skrive din SQL streng ud istedet for at execute den...
Det hjælper, hvis du stadig ikke kan finde fejlen, så send den herind igen.
Mvh
Janus
"Thomas L. Nielsen" <NOSPM-loftager@nielsen.mail.dk> wrote in message
news:3b82bb31$0$313$edfadb0f@dspool01.news.tele.dk...
> Hej,
>
> Jeg er ved at lave et newsscript og er stødt på en fejl. IIS5 siger:
> "Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT
> INTO-sætningen.
> /newsscript.asp, line 143 "
>
>
> strSQL = "INSERT INTO News (Header, AUTHOR, NEWS, DATE) " & _
> "values('" & Request.Form("txtHeader") & "', '" &
> Session("USER") & "', '" & strNews & "', '" & WriteDate & "')"
> Conn.Execute(strSQL)
>
>
> Hvor er fejlen?, jeg kan bare ikke finde den




Lars Hoffmann (21-08-2001)
Kommentar
Fra : Lars Hoffmann


Dato : 21-08-01 21:48

"Thomas L. Nielsen" wrote:
>
> strSQL = "INSERT INTO News (Header, AUTHOR, NEWS, DATE) " & _
> "values('" & Request.Form("txtHeader") & "', '" &
> Session("USER") & "', '" & strNews & "', '" & WriteDate & "')"
> Conn.Execute(strSQL)

'" & WriteDate & "' bør være #" & WriteDate & "# hvis det ikke virker må
du prøve at gøre som Thomas foreslår. Tjeck hvilke typer dine felter har
i databasen.

Anders Holbøll (21-08-2001)
Kommentar
Fra : Anders Holbøll


Dato : 21-08-01 21:57

"Thomas L. Nielsen" wrote:
>
> "Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT
> INTO-sætningen.
> /newsscript.asp, line 143 "
>
> strSQL = "INSERT INTO News (Header, AUTHOR, NEWS, DATE) " & _
> "values('" & Request.Form("txtHeader") & "', '" &
> Session("USER") & "', '" & strNews & "', '" & WriteDate & "')"
> Conn.Execute(strSQL)

Prøv at gøre som Janus siger.

Men du har jo også glemt at escape de værdier du indsætter i databasen,
så hvis en af felterne indeholder en ' vil du få problemer. Det kan også
være at "date" er et reserveret ord, så prøv evt. at sætte [] rundt om.
Hvis date virkelig, som navnet antyder, skal indeholde en dato, burde du
behandle den som en dato og ikke en tekst. Det kunne se sådan ud:

strSQL = "INSERT INTO news (header, author, news, [date]) " & _
"VALUES (" & _
StrToSql(Request.Form("txtHeader")) & ", " & _
StrToSql(Session("USER")) & ", " & _
StrToSql(strNews) & ", " & _
DateToSql(WriteDate) & ")"

Function StrToSql(ByVal Value)
If (Trim("" & Value) = "") Then
StrToSql = "NULL"
Else
StrToSql = "'" & Replace(CStr(Value), "'", "''") & "'"
End If
End Function

Function DateToSql(ByVal Value)
If Not IsDate(Value) Then
DateToSql = "NULL"
Else
DateToSql = "DateSerial(" & Year(Value) & "," & _
Minute(Value) & "," & _
Second(Value) & ")"
End If
End Function

--
Anders

Thomas L. Nielsen (22-08-2001)
Kommentar
Fra : Thomas L. Nielsen


Dato : 22-08-01 07:11

S'følgelig.....

"Date" var reserved, godt klaret at jeg ikke tænkte på det eftersom jeg lige
havde brugt Date() i WriteDate() ...

Tak for svarene, Jeg skule blot ændre Date til PostDate og så virkede der.


Mvh.


Thomas


"Anders Holbøll" <dev-null-20010820@serveren.dk> skrev i en meddelelse
news:3B82CB37.DF79F091@serveren.dk...
> "Thomas L. Nielsen" wrote:
> >
> > "Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT
> > INTO-sætningen.
> > /newsscript.asp, line 143 "
> >
> > strSQL = "INSERT INTO News (Header, AUTHOR, NEWS, DATE) " & _
> > "values('" & Request.Form("txtHeader") & "', '" &
> > Session("USER") & "', '" & strNews & "', '" & WriteDate & "')"
> > Conn.Execute(strSQL)
>
> Prøv at gøre som Janus siger.
>
> Men du har jo også glemt at escape de værdier du indsætter i databasen,
> så hvis en af felterne indeholder en ' vil du få problemer. Det kan også
> være at "date" er et reserveret ord, så prøv evt. at sætte [] rundt om.
> Hvis date virkelig, som navnet antyder, skal indeholde en dato, burde du
> behandle den som en dato og ikke en tekst. Det kunne se sådan ud:
>
> strSQL = "INSERT INTO news (header, author, news, [date]) " & _
> "VALUES (" & _
> StrToSql(Request.Form("txtHeader")) & ", " & _
> StrToSql(Session("USER")) & ", " & _
> StrToSql(strNews) & ", " & _
> DateToSql(WriteDate) & ")"
>
> Function StrToSql(ByVal Value)
> If (Trim("" & Value) = "") Then
> StrToSql = "NULL"
> Else
> StrToSql = "'" & Replace(CStr(Value), "'", "''") & "'"
> End If
> End Function
>
> Function DateToSql(ByVal Value)
> If Not IsDate(Value) Then
> DateToSql = "NULL"
> Else
> DateToSql = "DateSerial(" & Year(Value) & "," & _
> Minute(Value) & "," & _
> Second(Value) & ")"
> End If
> End Function
>
> --
> Anders



Anders Holbøll (22-08-2001)
Kommentar
Fra : Anders Holbøll


Dato : 22-08-01 07:36

"Thomas L. Nielsen" wrote:
>
> Tak for svarene, Jeg skule blot ændre Date til PostDate og så
> virkede der.

Det var så lidt, men vil du så ikke til gengæld læse den her
http://www.usenet.dk/netikette/quote.html

--
Anders

Thomas L. Nielsen (26-08-2001)
Kommentar
Fra : Thomas L. Nielsen


Dato : 26-08-01 12:55


"Anders Holbøll" <dev-null-20010820@serveren.dk> skrev i en meddelelse
news:3B8352D7.98E63280@serveren.dk...

> Det var så lidt, men vil du så ikke til gengæld læse den her
> http://www.usenet.dk/netikette/quote.html
Har gjort, og taget til efterretning :)


Thomas



Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408874
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste