|
| 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
| |
|
|