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

Sinhrono registrovanje dogadjaja sa servera

[es] :: Firebird/Interbase :: Sinhrono registrovanje dogadjaja sa servera

[ Pregleda: 2944 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mr. Rejn
Deki Karamatijević
Sremčica

Član broj: 2514
Poruke: 515
*.smin.sezampro.yu.



+4 Profil

icon Sinhrono registrovanje dogadjaja sa servera31.12.2005. u 22:54 - pre 222 meseci
Da li je neko uspeo da resi problem sinhronog registrovanja vise dogadjaja sa
servera?Primeri koji se daju u /examples direktorijumu samo registruju jedan
dogadjaj,ali ih je u principu moguce registrovati vise-pitam za resavanje pre-
ko Embedded SQL-a:
Code:

EXEC SQL
    BEGIN DECLARE SECTION;
EXEC SQL
    SET DATABASE empdb = "fsdfsdf";

long    *t1;
long    *t2;
int i;

EXEC SQL
    END DECLARE SECTION;

    int    ret = 0;
    
    EXEC SQL
        WHENEVER SQLERROR GO TO Error;

    EXEC SQL
        CONNECT empdb;

    /* Go with read committed to see updates */
    EXEC SQL
        EVENT INIT RESPOND_MANY ('prijava','odjava','novi_unos');

    while (!ret)
    {
        printf("\nEventmon ceka ...\n\n");
        EXEC SQL
            EVENT WAIT RESPOND_MANY  ;
        for (;;)    
        {
            if (SQLCODE == 100)
                break;
            for (i=0; i<2; i++)
            {
                if (isc_status[i])
                    {
            printf("Eventmon:  dogadjaj");
            break;
                    }
            }        
        }
    }
    
    EXEC SQL
        DISCONNECT empdb;
    exit(0);
Error:
    isc_print_sqlerror(SQLCODE, gds__status);
    exit(1);
}
return 0;
}

Ovaj kod radi-ali za svaki dogadjaj!
Kako da odredim koji dogadaj je u pitanju? U ovoj knjizi;
http://www.borland.com/resourc...pdf/white_papers/ib_events.pdf
pise da se za to koristi funkcija isc_event_counts() ali mozda neko
zna kako se tacno koristi?

Ag + Na -> Xe
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
81.93.80.*



Profil

icon Re: Sinhrono registrovanje dogadjaja sa servera07.01.2006. u 09:04 - pre 222 meseci
Nisam se dublje upuštao u rješavanje ovog problema,
ali negdje na početku onog pdf-a piše da je event jednostavna poruka
klijentu da se on desio (ne i šta ga je izazvalo, ako npr. više trigera okida isti event)
i da ne može proslijediti podatke od ili prema klijentu koji "osluškuje".
Ako još nisi riješio ovaj problem, pokušaj da definišeš više takvih eventa sa različitim
nazivima i da ih dodijeliš samo jednom događaju. Znači, jedan događaj - jedan event.
Onda klijent može da ih prepoznaje, broji...
I mene ovo interesuje, pa ako imaš nekakvo univerzalnije rješenje volio bih da vidim.
 
Odgovor na temu

mbabuskov
Milan Babuškov
Subotica

Član broj: 4718
Poruke: 217
*.subotica.net.

Sajt: www.comp.rs/izradasajta


+6 Profil

icon Re: Sinhrono registrovanje dogadjaja sa servera21.07.2006. u 10:50 - pre 216 meseci
isc_event_counts() ti samo daje koliko put se desio event.

Za detekciju sta se tacno desilo se obicno koristi log tabela. Dakle na glavnu tabelu (koju pratis) stavis trigger koji insertuje u log tabelu i pukne event.

Log tabela moze da bude jako jednostavna:

ID,IME_TABELE,PK

i onda iz aplikacije koja hvata event, uradis "SELECT * from LOG where ID > :zadnji_id_koji_si_procesirao". Ovo "zadnji_id_koji_si_procesirao", na pocetku rada procitas sa uzmes od generatora (ID u tabeli LOG je autoincrement). Iz ovog select-a vidis koja tabela i koji record se promenio.

Ovo sto sam opisao je jedan generalni nacin (ako hoces da pratis jako puno stvari) i obicno ga koriste replikatori.

Ako hoces jos da procitas o eventima, pogledaj:

http://www.flamerobin.org/events_paper.pdf


 
Odgovor na temu

[es] :: Firebird/Interbase :: Sinhrono registrovanje dogadjaja sa servera

[ Pregleda: 2944 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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