29. maj 2007 - 22:29Der er
5 kommentarer og 2 løsninger
Dynamisk sortering på vilkårlig(e) række(r) ASC & DESC
Jeg vil gerne give brugerne af et webinterface muligheden for at sortere er query på en vilkårlig række. Alternativt sortering på flere vilkårlige rækker. Samtidig skal brugeren have mulighed for at vælge om den enkelte række skal sorteres ASC eller DESC.
Eks.
SELECT A1,A2,A3,A4,...,An FROM B ORDER BY C; C skal så kunne være alle mulige tænkelige antal og kombinationer af rækkerne: A1 til An,...,A1 Hver kombination skal tilbyde ASC eller DESC for hver af de valgte rækker. C genereress ud fra et input via POST i en browser.
Håber i har nogle gode idéer til hvordan man kan gøre dette på en kort og simpel måde.
Det nemmeste må være at opbygge din SQL sætning dynamisk i din web app udfra felt udfyldelse (husk at validere data som beskyttelse mod SQL injection).
Det lykkedes mig at få noget fornuftigt ud af det link du leverede pgroen. PROCEDURE test(sort_var IN VARCHAR2 DEFAULT 'lada') IS TYPE cursTyp IS REF CURSOR; curs cursTyp; sql_stmt VARCHAR2(1000); BEGIN ... sql_stmt := 'SELECT blablablabla ... ORDER BY '||sor_var; OPEN curs FOR sql_stmt LOOP FECTH curs INTO jada,lada,hada,vada,mada,... EXIT WHEN curs%NOTFOUND END LOOP; ... END test;
I må gerne begge lægge et svar, da jeg også finder Arne's hint om SQL injektion nyttigt.
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.