[ mvlado @ 30.11.2008. 13:07 ] @
Zdravo,
Zna li neko kako da proverim status izvršenja komande. Da li je izvršena ili se još izvršava...
Problem je u tome što kada punim data set podacim kako se koj red doda tako se pozove i currentitemchanged event u BindingSource kontroli a to mi ne valja jer se u tom kodu pozivam na tabelu u dataset-u koja još nije napunjena. Zato mi treba provera da li se prethodna komanda završila da bi mogao da idem dalje.

Znači imam sqlCommand i kada pozovem Execute metod treba mi nešto kao Status kod Connection objekta... Executing ili Executed ...

Pozdrav,
Vlado
[ sallle @ 01.12.2008. 02:07 ] @
imas one metode begininit()/endinit ili beginload()/endload (ne znam tacno) koje iskljucuju sve eventove na datasetu.

tako da , iskljucis eventove, napunis ds, ukljucin eventove...
[ mmix @ 01.12.2008. 09:18 ] @
Nije mi bas najjasniji tvoj problem, Execute je sinhroni/blocking metod i kad se poziv vrati znaci i da je komanda izvrsena.
[ mvlado @ 01.12.2008. 10:00 ] @
...početna situacija je da je dataset prazan i bindingSource.Current je NULL...kada poče punjenje tabele, na koju pokazuje bindingSource, odmah nakon upisa prvog zapisa (komanda se i dalje izvršava) tada se i bindingSource.Current menja i samim time se i pokreće događaj CurrentItemChanged...u toj metodi ja pozivam drugi dataadapter da napuni drugu tabelu, na osnovu podataka iz prve tabele...problem je u tome što dok jedna komanda puni dataset druga ne može...moram da sačekam prva da se završi pa tek onda da izvršim drugu...
...SQLCommand ima događaj StatementCompleted koji se izvršava po izvršenju komande ali to onda znači da ja moram da napravim neki fleg koji će da prati izvršenje komande...
...nadao sam se da već postoji ugrađen taj mehanizam u komandu...
[ mmix @ 01.12.2008. 12:08 ] @
Znaci ti imas master-detail prikaz sa dinamickim ucitavanjem details tabele koji implementiras preko CurrentItemChanged eventa, a sve si to postavio kroz dizajner, ne ;).
To ti je prilicno tricky resenje (problem sa punjenjem je samo jedan od problema). Za pocetak bolje koristi CurrentChanged event ako ucitavanje details tabele zavisi samo od kljuca, CurrentItemChanged ce se dizati i kad ti korisnik promeni neko polje u trenutnom redu, ne samo kad se promeni red. Dalje, nemoj vezivati dataset za bindingsource iz dizajnera, instanciraj novi napuni ga master podacima i onda ga ubaci u bindingsource (a mozes i da zamenis onaj sa forme ako i druge komponente koriste taj dataset)
[ mvlado @ 01.12.2008. 13:14 ] @
...dobar predlog ali opet problemi...
Događaj CurrentChanged se između ostalog podiže i u ovoj situaciji "The DataSource or DataMember properties change." tako da u momentu kada ukinem binding sa DataSetom imaću isti problem čak i problem više jer sam izgubio vezu sa tabelom...moglo bi i tako da se zbuždi ali mislim da je rešenje mog problema u sqlCommand.StatementCompleted događaju...Occurs when the execution of a Transact-SQL statement completes.
Napravim fleg koji kad je recimo -1:Komanda se izvršava, 0:nema vraćenih zapisa, >0:broj vraćenih zapisa...