Witam serdecznie.
Zwracam się do Was o poradę jak poprawnie skonfigurować i uruchomić mechanizm alertów dla bazy MS SQL Server 2008 przy użyciu FireDac-a (pracuję na Delphi XE7).
Jest tam stosowna klasa/komponent TFDEventAlerter.
Do tej pory udało mi się uruchomić alerty ale dostaję tylko powiadomienie podczas „insertów” do tabeli. Polecenie sql-owe update wykonuje się poprawie ale alert się nie generuje :/
Posiłkując się kodem że strony http://codeverge.com/embarcadero.delphi.firedac/working-with-fdeventalerter-and-sq/1090353
Tak w zasadzie to nie rozumiem składni do definiowania tego alertu, chodzi o kod:
FDEventAlerter1.Names.Add('QUEUE=?');
FDEventAlerter1.Names.Add('SERVICE=?');
FDEventAlerter1.Names.Add('CHANGE1=ev1;select id, name from dbo.Test');
Z tych szczątkowych informacji jakie są podane na: http://docwiki.embarcadero.com/RADStudio/XE7/en/Database_Alerts_(FireDAC)
składnia jest taka: CHANGE<index>=<message>;<SELECT query>
do czego służy <SELECT query> ?
Czy tym poleceniem <SELECT query> można pobrać np. identyfikator „zainsertowanego” rekordu ?
Czy dla MS SQL-a jest to w ogóle możliwe aby w alercie zwrócić taką informację?
Tak samo nie mam pojęcia do czego służą definicje: 'QUEUE=?' (kolejka) oraz 'SERVICE=?' (no niby serwis ale jaki ?)
Mam takie rozwiązanie na bazie oracle tam mam DBMS_ALERT.SIGNAL do którego przekazuje parametry w „trigerach” i działa to super z FireDac.
Znalazłem też informację: MS SQL Server Query Update Notification (automatic notification)
na samym dole strony: http://docwiki.embarcadero.com/RADStudio/Seattle/en/Data_Change_Notifications_(FireDAC)
Czyli MS SQL Server generuje taki alert automatycznie ??? dla oracle jawnie wołam DBMS_ALERT.SIGNAL.