[ Serbix @ 27.10.2010. 01:38 ] @
| Da li mi možete reći koji je najbolji način praćenja promena u tabeli, npr. za Insert.
Potrebno mi je da svakih 5 sekundi pratim dali je drugi klijentski program upisao nešto u tabelu, do sada sam koristio klasični refresh pa vršio proveru recordcount-a ali mislim da postoji bolje rešenje ali nikako ne mogu da uspem da ga nadjem, niti na ovom forumu niti na netu.
Za konektovanje na bazu koristim "Direct Access Components for MySQL" iliti MySQLDAC i do sada nisam imao potrebu da tako često pratim promene pa sam malo radio na način koji je nestandardan ali je funkcionisao, ali za stalnu proveru koja mi je sada potrebna mislim da neće valjati doskorašnji metod :).
Hvala unapred. |
[ savkic @ 27.10.2010. 12:32 ] @
> Da li mi možete reći koji je najbolji način praćenja promena u tabeli, npr. za Insert.
> Potrebno mi je da svakih 5 sekundi pratim dali je drugi klijentski program upisao nešto u tabelu, do sada sam koristio klasični refresh pa vršio proveru recordcount-a ali mislim da
> postoji bolje rešenje ali nikako ne mogu da uspem da ga nadjem, niti na ovom forumu niti na netu.
Pitaj svakako na MySql forumu. Evo nekoliko ideja pa ti ispitaj i vidi šta je najbolje:
1) Klijentska aplikacija posle inserta pošalje obaveštenje
2) Postaviš AFTER INSERT trigger koji će updejtovati neku drugu tabelu (recimo jedno TIMESTAMP polje), ti onda povremeno proveravaš drugu tabelu (što je brže) i ako ima promena, onda glavnu.
3) Pretpostavljam da tabela ima ID, zapamtiš koji je najveći ID i onda povremeno tražiš nove slogove veće od datog IDa, te nove slogove samo dodaš u postojeći dataset tako da ne moraš raditi refreš čitave tabele već samo promenjenih slogova.
4) Ako su u MySqlu tabele pojedinačni fajlovi, pratiš promene na tom fajlu (timestamp ili filesize).
[ Serbix @ 27.10.2010. 23:28 ] @
Hvala Igore,
Mislim da ću probati varijantu 1. da klijentska aplikacija posle inserta pošalje obaveštenje, nekako mi se čini kao najbolje rešenje, mada i ovo sa trigerima nije loša samo imam mnogo tabela koje treba pratiti pa bi mi bilo malo komplikovano. A i nisam do sada radio sa trigerima a ne bih baš da isprobavam u ovom projektu koji sada radim.
[ captPicard @ 28.10.2010. 08:35 ] @
Zašto ti to treba? Ako kažeš razlog, možda čemo ti bolje pomoči.
[ Predrag Supurovic @ 28.10.2010. 11:32 ] @
Jesi li probao SHOW TABLE STATUS FROM <database> pa da makar odjednom vidis last update za sve tabele da ne moras za svaku posebno da izvrsavas upit?
[ Serbix @ 28.10.2010. 15:05 ] @
Citat:
captPicard: Zašto ti to treba? Ako kažeš razlog, možda čemo ti bolje pomoči.
Pravim aplikaciju koja će imati SMS modul, Email modul i još neke tipa automatsko pozivanje telefonom i sl. U stvari ti moduli bi radili kao neka vrsta servera gde bih iz ostalih aplikacija prosleđivao podatke tim modulima. E sad da ne komplikujem i zbunjujem vas šta sve moduli rade ali mi je veoma bitno da bar na par sekundi proveravaju da li ima posla za njih, tj. da li su im client aplikacije upisale podatke u tabelu. E sad pošto ću imati neodređeni broj klijent aplikacija koje takođe moraju komunicirati sa tim modulima tražim rešenje koje će biti najbolje, tj. koje će najmanje zagušivati bazu.
Citat:
Predrag Supurovic: Jesi li probao SHOW TABLE STATUS FROM <database> pa da makar odjednom vidis last update za sve tabele da ne moras za svaku posebno da izvrsavas upit?
Pedjo, otkud ti u Delphi forumu? Doduše odavno nisam posećivao ove forume na ES-u pa te nisam primetio. :) Znam da smo nekad davno pričali o mrežama samo sam imao drugi nick na ES-u za koji ne mogu da se setim šifre a email je ostao na co.yu.
Probaću tvoj predlog pa ću javiti utiske sa testiranja.
[ Predrag Supurovic @ 28.10.2010. 19:58 ] @
A zašto ne bih bio? Delfijem se bavim od verzije 1.0
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.