Avatar billede Keld Nielsen Professor
05. januar 2004 - 19:37 Der er 3 kommentarer og
2 løsninger

Afgrænse udtræk

Jeg har et udtræk af en database, som jeg gerne vil have afgrænset til kun at tage når et af felterne opfylder en bestemt betingelse.
F.eks. at "sted" er Aalborg.

Her er et udpluk af ASP-koden:
Method= Request.QueryString("method")
If Request.QueryString("method")="" Then
Method="ID"
End If

'De følgende linier sorterer data alt efter hvilken method, der er valgt'

Select Case Method
Case "ID"
Set objPersoner = Connection.Execute("select * from personer order by ID asc")
Case "Sted"
Set objPersoner = Connection.Execute("select * from personer order by sted asc")
Case "Navn"
Set objPersoner = Connection.Execute("select * from personer order by navn_1 asc")
Case "Town"
Set objPersoner = Connection.Execute("select * from personer order by town asc")
Case "Organisation"
Set objPersoner = Connection.Execute("select * from personer order by organisation asc")
End Select
Avatar billede eagleeye Praktikant
05. januar 2004 - 19:44 #1
Så skal du havde en where ind.
Du kan lave din seelc tcase sådan den ikke har hele SQL sætningen men kun ORDER BY delen, så  kan du nemlige også bygger en where ind:


Select Case Method
Case "ID"
ORDERBY = " order by ID asc"
Case "Sted"
ORDERBY = " order by sted asc"
Case "Navn"
ORDERBY = " order by navn_1 asc"
Case "Town"
ORDERBY = " order by town asc"
Case "Organisation"
ORDERBY = " order by organisation asc"
End Select

SQLWhere = " where sted = 'Aalborg' "

Set objPersoner = Connection.Execute ("select * from personer " & SQLWhere & ODERRBY)
Avatar billede ellebaek Nybegynder
05. januar 2004 - 19:44 #2
så tilføjer du en where sted = '"&din betingelse&"'

fx...
Set objPersoner = Connection.Execute("select * from personer where sted = 'Aalborg' order by sted asc")

så kan du hvis du fx. benytter request.querystring til at finde bynavn skrive:
Set objPersoner = Connection.Execute("select * from personer where sted = '"&request.querystring("sted")&"' order by sted asc")
Avatar billede Keld Nielsen Professor
05. januar 2004 - 20:30 #3
Jeg valgte at gå efter 'eagleeye's metode ...kunne slet ikke gennemskue 'ellebaek's.

Nu virker sortering ikke mere, koden ser sådan her ud:

Method= Request.QueryString("method")
If Request.QueryString("method")="" Then
Method="ID"
End If


Select Case Method
Case "ID"
ORDERBY = " order by ID asc"
Case "Sted"
ORDERBY = " order by sted asc"
Case "Navn"
ORDERBY = " order by navn_1 asc"
Case "Town"
ORDERBY = " order by town asc"
Case "Organisation"
ORDERBY = " order by organisation asc"
End Select

SQLWhere = " where sted = '220104 Odense 1700' "

Set objPersoner = Connection.Execute ("select * from personer " & SQLWhere & ODERRBY)


Response.Write("<table border=0 width=600 align=center>")
Response.Write("<td align=left><b><a href=Od_17.asp?method=Sted>Sted</a></b></td>")
Response.Write("<td align=left><b><a href=Od_17.asp?method=Navn>Navn</a></b></td>")
Response.Write("<td align=left><b><a href=Od_17.asp?method=Town>By</a></b></td>")
Response.Write("<td align=left><b><a href=Od_17.asp?method=Organisation>Organisation</a></b></td>")


Do While Not objPersoner.EOF


Response.Write("<tr>")
Response.Write("<td align=left class=""textbold"">"&objPersoner("sted")&"</td>")
Response.Write("<td align=left class=""textbold"">"&objPersoner("navn_1")&"</td>")
Response.Write("<td align=left class=""textbold"">"&objPersoner("town")&"</td>")
Response.Write("<td align=left class=""textbold"">"&objPersoner("organisation")&"</td>")
Response.Write("</tr>")


objPersoner.MoveNext
Loop
Response.Write("</tr>")
Response.Write("</table>")
Avatar billede eagleeye Praktikant
05. januar 2004 - 20:38 #4
;) jeg har lavet en skrive/stavefejl i denne linje:

Set objPersoner = Connection.Execute ("select * from personer " & SQLWhere & ODERRBY)

Det skal ikke være  ODERRBY  men  ORDERBY så prøv:

Set objPersoner = Connection.Execute ("select * from personer " & SQLWhere & ORDERBY)
Avatar billede Keld Nielsen Professor
05. januar 2004 - 21:22 #5
Tak for hjælpen ...begge to ...

det virker, og selvom det var den ene løsning jeg brugte, synes jeg I fortjener point begge !
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