22-05-2024, Saat: 19:19
Merhabalar,
Ortak ağda kullandığım Firebird databasede var.
Databasenin olduğu bilgisayarda, DB'ye Insert yapılınca FDEventAlerter hemen yakalıyor.
Ortak ağadaki diğer bilgisayar ise Insert yapılınca bir çoğunu yakalamıyor. Bu durum neden kaynaklı olabilir?
Ortak ağda kullandığım Firebird databasede var.
Databasenin olduğu bilgisayarda, DB'ye Insert yapılınca FDEventAlerter hemen yakalıyor.
Ortak ağadaki diğer bilgisayar ise Insert yapılınca bir çoğunu yakalamıyor. Bu durum neden kaynaklı olabilir?
{ CREATE TRIGGER }
FDQuery.Connection := FDConnection;
FDQuery.Active := False;
FDQuery.Close;
FDQuery.SQL.Clear;
FDQuery.SQL.Add(' CREATE TRIGGER CONTROL FOR LINKLER');
FDQuery.SQL.Add(' ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0');
FDQuery.SQL.Add(' AS');
FDQuery.SQL.Add(' BEGIN ');
FDQuery.SQL.Add(' IF (INSERTING) THEN ');
FDQuery.SQL.Add(' POST_EVENT ''INSERT''; ');
FDQuery.SQL.Add(' ELSE ');
FDQuery.SQL.Add(' IF (UPDATING) THEN ');
FDQuery.SQL.Add(' POST_EVENT ''UPDATE''; ');
FDQuery.SQL.Add(' ELSE ');
FDQuery.SQL.Add(' POST_EVENT ''DELETE''; ');
FDQuery.SQL.Add(' END ');
FDQuery.ExecSQL;
procedure TMainForm.FormCreate(Sender: TObject);
begin
FDEventAlerter.Connection := FDConnection;
FDEventAlerter.Active := False;
FDEventAlerter.Names.Clear;
FDEventAlerter.Names.Add('INSERT');
FDEventAlerter.Options.Synchronize := True;
FDEventAlerter.Options.Timeout := 10000;
FDEventAlerter.OnAlert := FDEventAlerterAlert;
FDEventAlerter.Register;
FDEventAlerter.Active := True;
end;
procedure TMainForm.FDEventAlerterAlert(ASender: TFDCustomEventAlerter; const AEventName: string; const AArgument: Variant); begin if CompareText(AEventName, 'INSERT') = 0 then begin Listelerim(Self); end; end;

