Create ederek firebird database oluşturuyorum ve bu databasede Trigger kullanıyorum. Herhangi bir kullanıcı Insert, delete veya update yaptığında uyarı alıyorum.
Hangi satırda değişiklik yapıldığını nasıl bulabilirm?
Örnek: ID numarası 14 olan, ROW, TITLE RESIM veya DURUM alannında değişiklik oldu gibi
Kod: Tümünü seç
FDQuery.Active := False;
FDQuery.Close;
FDQuery.SQL.Clear;
FDQuery.SQL.Add('CREATE TABLE RESIM (');
FDQuery.SQL.Add('ID INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL');
FDQuery.SQL.Add(', ROW INTEGER');
FDQuery.SQL.Add(', TITLE VARCHAR(255)');
FDQuery.SQL.Add(', LINK VARCHAR(255)');
FDQuery.SQL.Add(', RESIM VARCHAR(255)');
FDQuery.SQL.Add(', DURUM INTEGER');
FDQuery.SQL.Add(', PRIMARY KEY(ID)');
FDQuery.SQL.Add(');');
FDQuery.ExecSQL;
{ ---TRIGGER--- }
FDQuery.Active := False;
FDQuery.Close;
FDQuery.SQL.Clear;
FDQuery.SQL.Add(' create SEQUENCE GEN_RESIM_ID ');
FDQuery.ExecSQL;
FDQuery.Active := False;
FDQuery.Close;
FDQuery.SQL.Clear;
FDQuery.SQL.Add(' create trigger RESIMLER_ea for LOGO ');
FDQuery.SQL.Add(' active after insert or update or delete position 0 ');
FDQuery.SQL.Add(' as ');
FDQuery.SQL.Add(' begin ');
FDQuery.SQL.Add(' post_event ''HAREKET_VAR''; ');
FDQuery.SQL.Add(' end ');
FDQuery.ExecSQL;
Örnek:
Kod: Tümünü seç
procedure TMainForm.FDEventAlerterAlert(ASender: TFDCustomEventAlerter; const AEventName: string; const AArgument: Variant);
begin
showmessage(150. id'e değişiklik oldu) bu şekilde herhangi bir veride değişiklik yapılınca bu verinin idsini nasıl alırım?
end;