[ west_herc @ 09.12.2006. 06:30 ] @
| E ovako!
Ne baš tako davno pitao sam pitanje o refresanju forme kad se unese neki zapisu bazu. Ali palo mi na um nešto drugo. Naime, o čem se radi. u Formi1 se otvara Forma2, u F2 unesu se podaci i odmahse prikažu u datagridu od F1.
Da ne bih ja išao sa OBJECT APPROACH, stavim ja da se datagrid Filluje u MOVEMOUSE Event. E sad. Kako ja koristim Microsoft SQL server zanima me da li će baza biti totalno spora pri rezimo 1000 ili 10000 zapisa.
Da li je baza dovoljno brza da može uvijek fillovat na svaki pokret miša ili možda postoji neki drugi EVENT???
Kako sam koristio dialog reult, ono Yes or No, prilikom brisanja, te sam stavio na ACTIVATE event, tada mi ne radi.
|
[ Fedya @ 11.12.2006. 14:54 ] @
Nemoj, brate, na mousemove ;(
Ili iz F2 pozovi nesto sto ce osveziti F1 ili stavi neki tajmer koji ce (npr) svake sekunde proveriti da li ima izmena i samo ako ima onda osveziti podatke
(mada ni to nije najsrecnije resenje)
[ west_herc @ 20.12.2006. 16:43 ] @
Ma brate znam da to nije najsrećnije rješenje, ali morao sam se nekako snalaziti. Bilo bi super kad bih netko napisao kako se to radi, od pravih meštara.
To sa tajmerom mi ne zvuči loše, recimo svake sekunde da filluje :), ma šalim se. Stvarno ne znam kako bih, ne pada mi ni jedna ideja na ovo malo pameti.
[ bjevta @ 22.12.2006. 08:13 ] @
Kad u Form2 uneseš podatke, pretpostavljam da pritisneš neki OK button da se oni snime. Ako u formu (View) ubaciš kod za upis u bazu, to i nije najsrećnije rešenje (pogledaj MVC pattern, imaš tone dokumentacije na Internetu). Međutim, ako kažeš nekom controleru (ono C u MVC) da ti to zapiše, onda treba da uradiš sledeće:
- kontroler izvrši upis i digne tvoj, custom event tipa OnChange (a može i OnAdd, OnDelete i OnUpdate).
- Form1 hvata taj event i osvežava se. Dakle, osvežavanje nastaje samo ako se nešto od podataka izmenilo.
Par napomena:
- Nikako Timer! Timer je ok za neke druge stvari ali NE u ovom slučaju.
- Form2 može da digne event pa da ga Form1 hvata.
Inače, ovo je klasična Master-Detail situacija. Verujem da i na tu temu može da se pronađe dosta materijala.
[Ovu poruku je menjao bjevta dana 23.12.2006. u 06:34 GMT+1]
[ Fedya @ 22.12.2006. 08:28 ] @
Slazem se ja sa tobom da ne treba koristi tajmer za ovakve slucajeve, ali... Covek koji baca query na bazu na mouse move je ocigledno veliki pocetnik (@west_herc: nemam nameru da vredjam ili nesto slicno, cinjenica je da si uradnio nesto sto bilo ko ko ima malo vise iskustva ne bi nikada uradio, ako si se uvredio... sorry) i verujem da mu to sto si napisao nista ne znaci, posto najverovatnije ne zna da kreira evente, a do MVC (mada koliko znam mvc i nije best practise za .net) i patterne ce stici za godinu dana.
Ponudio sam resenje koje je brzo, lako i moze bez glavobolje da se implementira. U svakom slucaju, verujem da ce se svako sloziti da je bolje koristiti tajmer nego query na mouse move (ne radim desktop aplikacije vec godinama, ali koliko se secam mouse move se okida na svaki piksel po formi pri pomeranju misa) a to moze da bude stotinama puta u sec.
[ west_herc @ 22.12.2006. 11:47 ] @
Naravno da nije logičan moj prijedlog pa zato sam ga i pitao, ali isto s etako nemam šta da ljutim. Početnik sam i to velik :).
E onda što mi je činiti Fedya?
[ negyxo @ 22.12.2006. 12:15 ] @
Evo ti jedan predlog. Koristi globalne podatke. Dobices na performansama i bolje look & feel.
Mozes i pogledati attachment sa
http://www.elitesecurity.org/t231877-0#1386278 jeste da smo tada govorili o reportingu ali tamo imas taj koncept.
[ bjevta @ 23.12.2006. 05:39 ] @
Fedya: "(mada koliko znam mvc i nije best practise za .net)"
Nisi mi najjasniji u ovoj rečenici. Deder, pojasni malo, ne bilo ti zapoveđeno. :)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.