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

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Flere forespørgsler i samme kald
Fra : M


Dato : 18-11-02 19:37

Kan man lave flere forespørgsler i samme kald til en Access-database?
Jeg mener, at man i SQL Server kan sende flere på hinanden forespørgsler
ved at adskille dem med semikolon. F.eks.:

SELECT * FROM tabel; SELECT * FROM tabel2;

Jeg har forsøgt lignende i min Access-database, men får følgende fejl:
"Characters found after end of SQL statement."

Jeg har forsøgt at få Google, til at spytte ud med nogle svar, bl.a. ved
at søge efter "multiple queries", men noget siger mig, at det ikke er
det
det dækker over (hvilket i øvrigt måske gør sig gælende med mit topic?).

--
M


 
 
Peter Lykkegaard (18-11-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 18-11-02 19:48

Som svar på skriblerier forfattet af M

> Kan man lave flere forespørgsler i samme kald til en Access-database?
> Jeg mener, at man i SQL Server kan sende flere på hinanden
> forespørgsler ved at adskille dem med semikolon. F.eks.:
>
> SELECT * FROM tabel; SELECT * FROM tabel2;
>
NoGo i Access

Prøv at beskrive hvad det er du gerne vil
Der er flere workarounds til problemet

mvh/Peter Lykkegaard



M (18-11-2002)
Kommentar
Fra : M


Dato : 18-11-02 20:00

"Peter Lykkegaard" <polonline@hotmail.com> wrote:

> Som svar på skriblerier forfattet af M

[...]

> NoGo i Access

Okay - jeg havde det næsten på fornemmelsen.

> Prøv at beskrive hvad det er du gerne vil
> Der er flere workarounds til problemet

Det hænger sammen med en lille web-applikation, som jeg gerne vil
sikre mod "misbrug". Det drejer sig om, at man kan manipulere med
databasen via en modificering af en querystring'en. Det bør man
selvfølgelige sikre ved, at input validere men jeg ønsker at vide
hvilke muligheder man har f.eks. ved at kunne lave en SELECT
efterfulgt af f.eks. en DELETE FROM. Access er jo ikke indrettet
brugerorienteret så man kan fjerne muligheden for bestemte
SQL-kommandoer.

--
M


Mark S. Rasmussen (18-11-2002)
Kommentar
Fra : Mark S. Rasmussen


Dato : 18-11-02 21:09

> Det hænger sammen med en lille web-applikation, som jeg gerne vil
> sikre mod "misbrug". Det drejer sig om, at man kan manipulere med
> databasen via en modificering af en querystring'en. Det bør man
> selvfølgelige sikre ved, at input validere men jeg ønsker at vide
> hvilke muligheder man har f.eks. ved at kunne lave en SELECT
> efterfulgt af f.eks. en DELETE FROM. Access er jo ikke indrettet
> brugerorienteret så man kan fjerne muligheden for bestemte
> SQL-kommandoer.

En "fejl"indtastet querystring bør _aldrig_ nå til databasen! Lav validering
på denne først. Hvis den henter et id, så brug CInt(Request()) (i asp
self.), så vil den i det mindste komme med en ASP fejl først. Ellers så
erstat ', med ''.

Mvh Mark
--
www.improve.dk



M (18-11-2002)
Kommentar
Fra : M


Dato : 18-11-02 21:13

"Mark S. Rasmussen" <mark@tv.dk> wrote:

> En "fejl"indtastet querystring bør _aldrig_ nå til databasen! Lav
validering
> på denne først. Hvis den henter et id, så brug CInt(Request()) (i asp
> self.), så vil den i det mindste komme med en ASP fejl først. Ellers

> erstat ', med ''.

Jeg er klar over det (hvilket jeg også påpeger). Jeg ønsker bare at
vide, om
man kan putte flere forespørgsler i samme kald.

--
M


Jakob Andersen (19-11-2002)
Kommentar
Fra : Jakob Andersen


Dato : 19-11-02 14:41

"Mark S. Rasmussen" <mark@tv.dk> wrote
> En "fejl"indtastet querystring bør _aldrig_ nå til databasen! Lav
validering
> på denne først.
> [Snip]
> www.improve.dk

Sten + Glashus = Grib i egen favn

--
Jakob Andersen



Jens Gyldenkærne Cla~ (19-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-11-02 10:13

M skrev:

> Jeg er klar over det (hvilket jeg også påpeger). Jeg ønsker
> bare at vide, om
> man kan putte flere forespørgsler i samme kald.

Og det kan man altså ikke pt. med Access. Men det er måske ikke
lige det man skal bruge som en betydende del af sikkerheden. Der er
mig bekendt ingen garanti for at det ikke kan ændres med en
kommende databasedriver.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)

M (19-11-2002)
Kommentar
Fra : M


Dato : 19-11-02 10:22

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote:

> M skrev:
>
> > Jeg er klar over det (hvilket jeg også påpeger). Jeg ønsker
> > bare at vide, om
> > man kan putte flere forespørgsler i samme kald.
>
> Og det kan man altså ikke pt. med Access. Men det er måske ikke
> lige det man skal bruge som en betydende del af sikkerheden. Der er
> mig bekendt ingen garanti for at det ikke kan ændres med en
> kommende databasedriver.

Nej, ikke ved at adskille dem med semikolon, men Peter Lykkegaard
påpeger, at der er workarounds, og dem er jeg meget interesseret i.

--
M


Jens Gyldenkærne Cla~ (19-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-11-02 11:37

M skrev:

> Nej, ikke ved at adskille dem med semikolon, men Peter
> Lykkegaard påpeger, at der er workarounds, og dem er jeg meget
> interesseret i.

Nu ved jeg ikke lige hvilke workarounds Peter tænker på - men så
vidt jeg ved drejer det sig om at man kan flette en select ind i en
anden select:

   SELECT * FROM tabel1 WHERE felt1 = <formfelt>
kan blive til
   SELECT * FROM tabel1 WHERE felt1 = 0 OR 1 = 1
eller
   SELECT * FROM tabel1 WHERE felt1 = (SELECT felt2 FROM tabel2)
etc.

Men det er ikke et specielt stort sikkerhedsproblem, fordi du for
det første kun kan flette select-forespørgsler ind i en select-
forespørgsel (man kan altså ikke kombinere en select med en
delete), og for det andet fordi der ikke kan ændres ved de felter
du trækker ud. Det gælder dog kun sålænge det kun er kriterier der
flettes ind i sql-sætningen.

Altså - hvis den variable del af din sqlsætning først begynder
efter WHERE, så er det eneste risikable der kan ske at der
returneres andre data end dem du gerne vil have vist. Hvis man
benytter variable handlingsforespørgsler på nettet skal man være
mere varsom - her kan en uvelkommen ændring få store konsekvenser.


--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)

Jakob Andersen (19-11-2002)
Kommentar
Fra : Jakob Andersen


Dato : 19-11-02 14:44

"M" <none@127.0.0.1> wrote
> Nej, ikke ved at adskille dem med semikolon, men Peter Lykkegaard
> påpeger, at der er workarounds, og dem er jeg meget interesseret i.

Disse workarounds foregår som regel ved at koden ændres FØR en evt. WHERE
clause og det er vel for det meste i disse at du laver noget "dynamisk" SQL
kode.

Men lad nu for guds skyld ikke access' manglende evne til at genemføre flere
statements med et kald sikre dit website, det kunne jo være at driveren
engang kommer til at understøtte det eller evt. får du lyst til at opgradere
til et andet/rigtigt DBMS

--
Jakob Andersen



Søg
Reklame
Statistik
Spørgsmål : 177517
Tips : 31968
Nyheder : 719565
Indlæg : 6408633
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste