|
| insert into problem Fra : Finn |
Dato : 24-10-02 08:58 |
|
Håber nogen kan pinpointe fejlen i dette
Kilde:
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("data.mdb")
Conn.Open DSN
strSQL = "Insert into T_Husk (note,dato) "
strSQL = strSQL & "values ('" & Request.Form("note") & "', "
strSQL = strSQL & "'" & Request.Form("dato") & "')"
Response.Write(strSQL)
RESULTERER I FEJLEN:
***************************************************
Insert into T_Husk (note,dato) values ('her er teksten', '24-10-2002')
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO
statement.
/Drift-Teknik/Support/hotweb/dagbog.asp, line 27
***************************************************
| |
Chrisser (24-10-2002)
| Kommentar Fra : Chrisser |
Dato : 24-10-02 09:08 |
|
"Finn" <trebbienNoMAIL@city.dk> skrev i en meddelelse
news:3db7a80a$0$97648$edfadb0f@dspool01.news.tele.dk...
> Håber nogen kan pinpointe fejlen i dette
> Kilde:
>
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath("data.mdb")
> Conn.Open DSN
>
> strSQL = "Insert into T_Husk (note,dato) "
> strSQL = strSQL & "values ('" & Request.Form("note") & "', "
> strSQL = strSQL & "'" & Request.Form("dato") & "')"
> Response.Write(strSQL)
>
Hvis dit datofelt er af typen dato og ikke tekst skal du pakke din dato ind
i # frem for pinger
MVH
Chrisser
| |
Finn (24-10-2002)
| Kommentar Fra : Finn |
Dato : 24-10-02 09:19 |
|
> Hvis dit datofelt er af typen dato og ikke tekst skal du pakke din dato
ind
> i # frem for pinger
Note er et Notat felt mens dato er tekst felt (netop for lige at undgå
probelmet)
Så hvad nu ?
| |
Chrisser (24-10-2002)
| Kommentar Fra : Chrisser |
Dato : 24-10-02 09:23 |
|
"Finn" <trebbienNoMAIL@city.dk> skrev i en meddelelse
news:3db7ad10$0$28817$edfadb0f@dspool01.news.tele.dk...
>
> > Hvis dit datofelt er af typen dato og ikke tekst skal du pakke din dato
> ind
> > i # frem for pinger
>
> Note er et Notat felt mens dato er tekst felt (netop for lige at undgå
> probelmet)
>
Så ved jeg det ikke lige, jeg arbejder normalt ikke med access.....
Er du sikker på at den bryder sig om dit tabel-navn ?
Ellers må du prøve sql-gruppen, hvis der ikke lige er nogle herinde der har
nogle bedre forslag
Chrisser
| |
Finn (24-10-2002)
| Kommentar Fra : Finn |
Dato : 24-10-02 10:03 |
|
> Så ved jeg det ikke lige, jeg arbejder normalt ikke med access.....
> Er du sikker på at den bryder sig om dit tabel-navn ?
>
> Ellers må du prøve sql-gruppen, hvis der ikke lige er nogle herinde der
har
> nogle bedre forslag
>
Det mærkelige er at jeg har et tilsvarende asp der virker på en anden tabel
og med flere felter
| |
Finn (24-10-2002)
| Kommentar Fra : Finn |
Dato : 24-10-02 10:57 |
|
> > > Hvis dit datofelt er af typen dato og ikke tekst skal du pakke din
dato
> > ind
> > > i # frem for pinger
jeg prøver med datofeltet, men hvor skal # sættes i stedet for pinger ?
strSQL = "Insert into T_Dagbog (dato,besked) "
strSQL = strSQL & "values ('" & Request.Form("dato") & "', "
strSQL = strSQL & "'" & Request.Form("besked") & "')"
| |
Chrisser (24-10-2002)
| Kommentar Fra : Chrisser |
Dato : 24-10-02 11:31 |
|
"Finn" <trebbienNoMAIL@city.dk> skrev i en meddelelse
news:3db7c3fa$0$28831$edfadb0f@dspool01.news.tele.dk...
>
> jeg prøver med datofeltet, men hvor skal # sættes i stedet for pinger ?
>
> strSQL = "Insert into T_Dagbog (dato,besked) "
> strSQL = strSQL & "values ('" & Request.Form("dato") & "', "
> strSQL = strSQL & "'" & Request.Form("besked") & "')"
>
Uden om din dato:
strSQL = "Insert into T_Dagbog (dato,besked) "
strSQL = strSQL & "values (#"& Request.Form("dato") & "#, "
strSQL = strSQL & "'" & Request.Form("besked") & "')"
MVH
Chrisser
| |
Finn (25-10-2002)
| Kommentar Fra : Finn |
Dato : 25-10-02 09:45 |
|
Tak for det. Jeg prøver det af
| |
Lars Hoffmann (24-10-2002)
| Kommentar Fra : Lars Hoffmann |
Dato : 24-10-02 10:00 |
|
"Finn" <trebbienNoMAIL@city.dk> escribió
> strSQL = "Insert into T_Husk (note,dato) "
> strSQL = strSQL & "values ('" & Request.Form("note") & "', "
> strSQL = strSQL & "'" & Request.Form("dato") & "')"
husk at escape pinger som kan introduceres af brugeren:
strSQL = "Insert into T_Husk (note,dato) "
strSQL = strSQL & "values ('" &
replace(Request.Form("note"),"'","''") & "', "
strSQL = strSQL & "'" & replace(Request.Form("dato"),"'","''") &
"')"
Og lad os da se resultatet af din Response.Write(strSQL)
| |
Chrisser (24-10-2002)
| Kommentar Fra : Chrisser |
Dato : 24-10-02 10:10 |
|
"Lars Hoffmann" <lars@intercambiodvd.com> skrev i en meddelelse
news:ap8cs6$sf585$1@ID-163022.news.dfncis.de...
>
> Og lad os da se resultatet af din Response.Write(strSQL)
>
Resultatet er i det første indlæg
Chrisser
| |
Lars Hoffmann (24-10-2002)
| Kommentar Fra : Lars Hoffmann |
Dato : 24-10-02 10:13 |
|
"Chrisser" <cbj@egdatainform.dk> escribió en el mensaje
news:ap8dg7$8k8$1@sunsite.dk...
>
> "Lars Hoffmann" <lars@intercambiodvd.com> skrev i en meddelelse
> news:ap8cs6$sf585$1@ID-163022.news.dfncis.de...
> >
> > Og lad os da se resultatet af din Response.Write(strSQL)
> >
> Resultatet er i det første indlæg
ah ja, nu tror jeg at jeg har set fejlen
Prøv dette:
strSQL = "Insert into T_Husk ([note],[dato]) "
strSQL = strSQL & "values ('" &
replace(Request.Form("note"),"'","''") & "', "
strSQL = strSQL & "'" & replace(Request.Form("dato"),"'","''") &
"')"
| |
Finn (24-10-2002)
| Kommentar Fra : Finn |
Dato : 24-10-02 11:17 |
|
> Prøv dette:
>
> strSQL = "Insert into T_Husk ([note],[dato]) "
> strSQL = strSQL & "values ('" &
> replace(Request.Form("note"),"'","''") & "', "
> strSQL = strSQL & "'" & replace(Request.Form("dato"),"'","''") &
> "')"
>
Jeg kan se at feltnavne skriver du med [kantet] , men hvorfor replace-delen
?
| |
Lars Hoffmann (24-10-2002)
| Kommentar Fra : Lars Hoffmann |
Dato : 24-10-02 12:00 |
|
"Finn" <trebbienNoMAIL@city.dk> escribió
> Jeg kan se at feltnavne skriver du med [kantet] , men hvorfor
replace-delen
For at undgå at brugeren kan indtaste SQL.
Forstil dig følgende kode:
SQL = "SELECT * FROM "
SQL = SQL & "USERS WHERE LOGIN ='"
SQL = SQL & request.form("login") & "' "
SQL = SQL & "AND password ='"
SQL = SQL & request.form("password") & "' "
set rs = connectoion.execute(SQL)
if rs.eof then
'ikke logget på
else
'logget på
end if
Hvad ville der sker hvis jeg på denne side indtastede følgende både i
login og password feltet:
blabla' or '1' = '1
Så ville jeg lige pludselig kunne logge på dit system uden at kende
hverken bruger eller password.
Med venlig hilsen
Lars Hoffmann
| |
|
|