Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C++ Builder, TADOTable - loše performanse nakon Post()

[es] :: C/C++ programiranje :: C++ Builder, TADOTable - loše performanse nakon Post()

[ Pregleda: 1629 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon C++ Builder, TADOTable - loše performanse nakon Post()25.12.2015. u 09:20 - pre 101 meseci
Napravio sam jednu aplikaciju koja preko mreže komunicira s MS SQL serverom 2012 preko TADOConnection tj. TADOTable komponente. Za unos podataka u tablicu koristim

Code:

// DM1 - TDataModule
// TJedinicaZnanja - TADOTable

DM1->TJedinicaZnanja->Insert();
DM1->TJedinicaZnanja->FieldByName("...")...
DM1->TJedinicaZnanja->FieldByName("...")...
DM1->TJedinicaZnanja->Post();  // traje predugo!


Sve je bilo u redu dok je tablica imala malo zapisa. Sada kada ih ima preko 1500 svaki Post() traje cca 4 sec. Testirao sam i preko SQL Server Profilera i vidim da je problem isključivo na klijent strani jer se update na serveru izvrši trenutno. Očito je problem u TADOTable komponenti koja nakon Post() ponovo učitava cijeli dataset, a meni to nije potrebno. Meni je samo potrebno da novi/izmijenjeni podatak doda u grid.

S obzirom da nakon Post() moji korisnici trebaju vidjeti zapis u gridu (TcxGrid - DevExpress) zbog operacija pretraživanja, sortiranja, grupiranja itd. ne mogu ovo realizirati upotrebom TADOQuery ili druge komponente jer tada mi taj zapis neće biti vidljiv u gridu bez ponovnog učitavanja dataseta, a time opet gubim vrijeme na učitavanje. Čak niti ServerClient kursor ne funkcionira kako treba jer u design-timeu uredno učita podatke no u runtime-u to isto ne radi.. Zablokira aplikaciju pri učitavanju podataka.

Što napraviti?
 
Odgovor na temu

[es] :: C/C++ programiranje :: C++ Builder, TADOTable - loše performanse nakon Post()

[ Pregleda: 1629 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.