|
| Opdatering af dele af en database Fra : Carsten Pinderup |
Dato : 25-04-02 10:10 |
|
Hej NG
Jeg er i vilrede om følgende:
Jeg har en database med blob værdier i. Jeg vil gerne kunne rette de andre
felter ikke blob-vædien.
Kan jeg rette fx to felter uden at skulle hente blob-værdien og lægge den op
igen. Normalt gør jeg som følger:
SQLstmt = "UPDATE DISTINCTROW tabel SET overskrift = '" &
request.form("overskrift") & "', description = '" &
request.form("description") & "' WHERE id = " & Request("id")
SQLstmt = SQLstmt & " VALUES ('" & request.form("overskrift") & "','" &
request.form("description")')
(her uden blob-værdien)
men det giver en fejl:
UPDATE DISTINCTROW tabel SET overskrift = 'SvineINFO uge nr.: 03',
description = '' WHERE id = 3 VALUES ('SvineINFO uge nr.: 03','
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in
query expression 'id = 3 VALUES ('SvineINFO uge nr.: 03',''.
/intern/svin/svineinfo/gem_ret_data.asp, line 32
Så hvad gør jeg, hvis det ikke er hele rækken?
Med venlig hilsen
Carsten Pinderup
| |
Janus Klok Lauritsen (25-04-2002)
| Kommentar Fra : Janus Klok Lauritsen |
Dato : 25-04-02 10:31 |
|
Ups Carsten...
Det er vist en meget typisk fejl, for det du gør er at blande INSERT og
UPDATE i SQL sammen.
I UPDATE (som du prøver at lave her) er der ikke en kommando der hedder
VALUES, det er der derimod i INSERT.
Prøv at fjerne dette, så tror jeg du vil se det virker.
Mvh
Janus
"Carsten Pinderup" <cpi@landbonord.dk> wrote in message
news:aa8h7k$h8d$1@sunsite.dk...
> SQLstmt = "UPDATE DISTINCTROW tabel SET overskrift = '" &
> request.form("overskrift") & "', description = '" &
> request.form("description") & "' WHERE id = " & Request("id")
> SQLstmt = SQLstmt & " VALUES ('" & request.form("overskrift") & "','" &
> request.form("description")')
| |
Janus Klok Lauritsen (25-04-2002)
| Kommentar Fra : Janus Klok Lauritsen |
Dato : 25-04-02 10:35 |
|
Undskyld dobbelt posten, men jeg glemte lige at minde dig om at det er lidt
farligt det du laver her.
Du giver mulighed for SQL injection. Prøv foreksempel at forestille dig hvad
der sker hvis en bruger poster/getter "1 or 0=0" som din variabel id.
Resultat: Alle dine poster i databsen er opdateret.
Løsning: Serverside validering + evt. replace(var, "'","''")
Mvh
Janus
"Janus Klok Lauritsen" <janus@mcb.dk> wrote in message
news:aa8idh$qa5$1@sunsite.dk...
> "Carsten Pinderup" <cpi@landbonord.dk> wrote in message
> news:aa8h7k$h8d$1@sunsite.dk...
> > SQLstmt = "UPDATE DISTINCTROW tabel SET overskrift = '" &
> > request.form("overskrift") & "', description = '" &
> > request.form("description") & "' WHERE id = " & Request("id")
| |
Carsten Pinderup (25-04-2002)
| Kommentar Fra : Carsten Pinderup |
Dato : 25-04-02 10:41 |
|
Tja...
Det havde jeg faktisk prøvet som det første og så kiksede det åbenbart helt
for mig. Havde jeg læst fejlteksten var jeg ikke stødt ind i problemer og
skulle ikke have generet gruppen - FOR MANDEN KAN IKKE STAVE.....
nu virker alt fint.
Beklager
Med venlig hilsen
Carsten Pinderup
"Janus Klok Lauritsen" <janus@mcb.dk> skrev i en meddelelse
news:aa8idh$qa5$1@sunsite.dk...
> Ups Carsten...
> Det er vist en meget typisk fejl, for det du gør er at blande INSERT og
> UPDATE i SQL sammen.
> I UPDATE (som du prøver at lave her) er der ikke en kommando der hedder
> VALUES, det er der derimod i INSERT.
> Prøv at fjerne dette, så tror jeg du vil se det virker.
> Mvh
> Janus
> "Carsten Pinderup" <cpi@landbonord.dk> wrote in message
> news:aa8h7k$h8d$1@sunsite.dk...
> > SQLstmt = "UPDATE DISTINCTROW tabel SET overskrift = '" &
> > request.form("overskrift") & "', description = '" &
> > request.form("description") & "' WHERE id = " & Request("id")
> > SQLstmt = SQLstmt & " VALUES ('" & request.form("overskrift") & "','" &
> > request.form("description")')
>
>
| |
|
|