|
| Dynamiske views - nogle gode idéer ? Fra : Stig Johansen |
Dato : 22-11-08 07:10 |
|
Hej alle.
Jeg har et lille puslespil, som jeg ikke synes jeg kan få hul på.
Baggrund:
Jeg har en tabel, fieldlists, som indeholder informationer om felter i en
anden tabel.
Hvis jeg vil have fat i dem laver jeg eks.
SELECT Fieldname FROM Fieldlists WHERE Databasename=<navnet> ORDER BY
Fieldnumber
Ud fra denne bruttoliste vil jeg lave en <form>, der skal sende udvalgte
felter tilbage, så jeg kan lave en CREATE VIEW ud fra de valgte felter +
rækkefølge og sortering.
Jeg forestiller mig at bygge en simpel tabel som:
Felt Order Desc
----- ------ -----
Felt1 2
Felt2 1 J
Felt3
Order skal forestille rækkefølgen, og Desc f.eks. en checkbox der angiver om
det er DESC sortering.
Ud fra eksemplet skal jeg kunne bygge følgende statement:
CREATE VIEW <navnet> AS
SELECT Felt2,Felt1 FROM <tabelnavnet>
ORDER BY Felt2 DESC,Felt1
Det lyder nemt nok, men hvordan får jeg koblet de enkelte rækker sammen ?
Jeg overvejer at bruge eksempelvis disse navne til name attributten:
Felt Order Desc
----- ------ -----
field_1 order_1 sort_1
field_2 order_2 sort_2
osv.
Antallet af rækker er ukendt på forhånd.
Jeg har ikke postet noget kode, for det er dét jeg mangler, altså en metode
til at traverse Request.Form sammenhængene.
--
Med venlig hilsen
Stig Johansen
| |
Stig Johansen (22-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 22-11-08 08:03 |
|
"Stig Johansen" <wopr.dk@gmaill.com> wrote in message
news:4927a27c$0$90267$14726298@news.sunsite.dk...
> Jeg har ikke postet noget kode, for det er dét jeg mangler, altså en
metode
> til at traverse Request.Form sammenhængene.
Nogle gange kommer inspirationen bare af at skrive om problemet. ;)
Jeg arbejder videre med følgende kodestumer:
----------- visning -------------
Response.Write
"<table><tr><th>Fieldname</th><th>Fieldorder</th><th>Descending</th></tr>"
Counter = 0
Do while (Not oRs.eof)
Counter = Counter + 1
Response.Write "<tr>" + _
"<td><input type='text' name='field_" +cStr(Counter) + "'
value='"+oRs("fieldname")+"'/></td>" + _
"<td><input type='text' name='order_" +cStr(Counter) +
"'/></td>" + _
"<td><input type='checkbox' name='sort_" +cStr(Counter) +
"'/></td>" + _
"</tr>"
oRs.MoveNext
Loop
oRs.Close
Response.Write "</table>"
Response.Write "<input type='hidden' name='fieldcount' value='" +
cStr(Counter) +"'/>"
----------- oprettelse ------------
Fieldcount = Request.Form("fieldcount")
Response.Write "in adding view" +cStr(Fieldcount)
Counter = 0
For Counter = 1 to Fieldcount
Fieldorder = "order_" + CStr(Counter)
Fieldorder = Request.Form(Fieldorder)
if trim(Fieldorder) > "!" then
Fieldname = "field_" + CStr(Counter)
Fieldname = Request.Form(Fieldname)
Descending = "sort_" + CStr(Counter)
Descending = Request.Form(Descending)
Response.Write " Field: " + Fieldname + " order: " + Fieldorder
+ " sort: " + Descending
end if
next
-----------------------------------
Det giver de ønskede data til brug for opbygning af SQL'et.
Så skal jeg bare have fundet en primitiv sortering, så burde den ged være
barberet.
--
Med venlig hilsen/Best regards
Stig Johansen
| |
|
|