Új hozzászólás Aktív témák
-
bpx
őstag
válasz
kisbandima
#1163
üzenetére
egyrészt, ha bind változókat használsz, ez így is csak annyi SQL, ahány esetet a feltételek megadása/meg nem adása eredményez
de ha minden esetet egy SQL utasítással akarsz kezelni, ám legyenMSSQL-t nem ismerem, szóval ez amolyan pszeudokód lesz

SELECT oszlop1, oszlop2
FROM tabla
WHERE datum > NVL(:B1, MINDATE)
AND datum < NVL(:B2, MAXDATE)
AND osszeg > NVL(:B3, 0)
AND osszeg < NVL(:B4, INT.MAXVALUE);B1-B4 bind változók, ami user input
ha a user nem ad meg semmit, akkor NULL-t adsz be neki
az NVL arra való, hogy ha az első paramétere NULL, akkor kicseréli a másodikratehát ha a user nem ad meg felső határt a dátumra, akkor a NULL-t kicseréli az NVL a lehetséges legnagyobb dátumra
ha a user nem ad meg alsó határt az összegre, akkor kicseréli 0-ra
és így tovább...ha meg linq vagy ilyesmi, abban nem vagyok otthon (sajnos)
-
martonx
veterán
válasz
kisbandima
#1163
üzenetére
Ha már Silverlight, akkor gondolnám, hogy WCF RIA Services-el adod az adatokat, ez esetben LINQ-val simán meg lehet oldani az egészet.
Ha meg nem több millió adatsorról van szó, C#-al, XAML-lel elég szépen lehet memóriában szűrni az adathalmazt. -
Sk8erPeter
nagyúr
válasz
kisbandima
#1163
üzenetére
Én is a tárolt eljárásra szavaznék, de nem ártana látni a "favágó" módszert, meg az alap query-t, vagy valami példaszerűséget, hogy meg tudjuk mondani, hogyan tudnád azt szebben elkészíteni.
Pl. a WHERE-ben is lehetne CASE-ek.(#1164) lakisoft :
Most már érdekelne, hogy ez a dynamic SQL miért jó? Ahogy nézegettem, ez igazából egy query feltételektől függő konkatenálgatása, aztán a query "elkészítése" során annak végrehajtása, ami szerintem elég randa.
Akkor már a WHERE-be elhelyezett, kicsit komplex CASE-ek is szebbnek tűnnek.
Persze aztán lehet, hogy csak nem találkoztam durva esetekkel, ahol nincs jobb, ezért kérdezem. -
lakisoft
veterán
válasz
kisbandima
#1163
üzenetére
Dynamic SQL? vagy Dynamic SQL és tárolt eljárás?
Új hozzászólás Aktív témák
- Telekom mobilszolgáltatások
- World of Tanks - MMO
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Ubuntu Linux
- Gaming notebook topik
- Kertészet, mezőgazdaság topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Samsung Galaxy Felhasználók OFF topicja
- Lenovo Thinkbook, Yoga széria
- További aktív témák...
- Gamer PC - i5 / GTX 960/12 Gb Ram (Erősebb, mint a 1050 Ti!)
- Eladó AKG Ara, dupla kapszulás mikrofon! Bontatlan, garanciás! Több darab is elérhető!
- Logitech Superstrike x2
- D-link 16 és 24 portos, sima és POE, gigabites managelhető switchek
- Gigabyte H510M PRO-E alaplap + Intel Core i5 10400F CPU (+ram, táp, vga igény szerint)
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- 27% - ASUS ProArt GeForce RTX 4080 SUPER OC 16GB GDDR6X 256bit Videókártya !
- BESZÁMÍTÁS! GIGABYTE B760M i5 13600K 32GB DDR4 1TB SSD RTX 4070 Super 12GB Lian Li Vector V100R 650W
- 27% - Samsung ViewFinity S7 S27D700EAU IPS Monitor! 3840x2160 / 60Hz / 5ms
- BESZÁMÍTÁS! Gigabyte B450M R5 2600 16GB DDR4 256GB SSD GTX 1060 6GB Formula Air Mesh G3 Chieftec500W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

