Avatar billede woolbox Nybegynder
25. april 2002 - 01:07 Der er 4 kommentarer og
1 løsning

Opbygning af SELECT-statement til Access DB

Hej hej ...

Jeg har brug for lidt hjælp til at opbygge en SELECT-frase, bygget op omkring de querystrings der kaldes vha. "...asp?var1=value2&var2=val2".

Det skal opbygges så det afvikles så effektivt og kvikt som muligt på serveren, og det skal være nemt at tilføje flere variable.

Foreløbig er følgende variable defineret ...
ffore = request.querystring("fore")
fback = request.querystring("back")
fshape = request.querystring("shape")

Hvis variablen er blank skal der ikke "filtreres" på denne, og selvsagt hvis fx. shape=circle så skal alle records hvor shape=circle vises.

Alt dette er på plads med undtagelse af opbygningen af SELECT-frasen - Common ya Experts, gimme some luvin'!! ;o)
Avatar billede kimiwan Nybegynder
25. april 2002 - 01:15 #1
'din sql streng uden kriterier
sql = "select * from tabel"

'test om kriterier skal inkluderes, og gør det, hvis de skal
if len(ffore)>0 then where = where & "fore = '" & ffore & "' AND "
if len(fback)>0 then where = where & "back = '" & fback & "' AND "
if len(fshape)>0 then where = where & "shape = '" & fshape & "' AND"

'føj dine to sql strenge sammen og fjern de sidste "AND " fra slutningen
sql = sql & left(where,len(where)-4)
Avatar billede woolbox Nybegynder
25. april 2002 - 01:31 #2
Det første 'where' i 'where = where' er det strengen som jeg selv definerer? - Mere så jeg kan adskille de to og ved hvad der sker, giver følgende det samme resultat? ...


'din sql streng uden kriterier
sql = "select * from tabel"

'test om kriterier skal inkluderes, og gør det, hvis de skal
if len(ffore)>0 then MINSTRENG = where & "fore = '" & ffore & "' AND "
if len(fback)>0 then MINSTRENG = where & "back = '" & fback & "' AND "
if len(fshape)>0 then MINSTRENG = where & "shape = '" & fshape & "' AND"

'føj dine to sql strenge sammen og fjern de sidste "AND " fra slutningen
sql = sql & left(MINSTRENG,len(MINSTRENG)-4)


Iøvrigt tak for det superhurtige svar! :o)
Avatar billede kimiwan Nybegynder
25. april 2002 - 01:40 #3
jeg prøver lige at skrive koden om så.. med en korrektion til mit eget + du skal huske at skrive MINSTRENG på begge sider af lighedstegnet.

'din sql streng uden kriterier
sql = "select * from tabel"

'test om kriterier skal inkluderes, og gør det, hvis de skal
if len(ffore)>0 then MINSTRENG = MINSTRENG & "fore = '" & ffore & "' AND "
if len(fback)>0 then MINSTRENG = MINSTRENG & "back = '" & fback & "' AND "
if len(fshape)>0 then MINSTRENG = MINSTRENG & "shape = '" & fshape & "' AND"

'føj dine to sql strenge sammen, hvis der er nogen kriterier, og fjern de sidste "AND " fra slutningen
if len(MINSTRENG)>0 then sql = sql & " WHERE " & left(MINSTRENG,len(MINSTRENG)-4)
Avatar billede woolbox Nybegynder
25. april 2002 - 01:40 #4
kimiwan -> Smider du svar på http://www.eksperten.dk/spm/202866 - jeg har nemlig udvidet spørgsmålet lidt og forhøjet point-summen ...

Og du er stadigvæk først med svaret til denne del af spørgsmålet ....

Det vigtigste jeg glemte at spørge om her er: hvordan fanger jeg records hvor fx. pris ligger mellem x og y? - Det vil jeg gerne kunne kalde vha. album.asp?price_min=100&price_max=200 (som eksempel værdier selvfølgelig ;o) ).

PFT :o)
Avatar billede woolbox Nybegynder
25. april 2002 - 01:51 #5
Spørgsmål lukket og udvidet til http://www.eksperten.dk/spm/202866 :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester