Arşiv

Posts Tagged ‘toracleevent’

delphi oracle event

Hi everyone,
Today , we will examine the dbms_alert.signal procedure of oracle database.We use “TOracleEvent” object for catching oracle events in Delphi. Firstly , we should configure object names and object types. You can see at below picture.

procedure TForm1.FormActivate(Sender: TObject);
begin
   Event.Start;
end;

procedure TForm1.FormClose(Sender: TObject);
begin
   Event.Stop;
end;

procedure TForm1.EventEvent(Sender: TOracleEvent; const ObjectName: String; const Info: Variant);
var
 I: Integer;
begin
   if CompareStr(ObjectName,'CHANGE')=0 then
   begin
     if VarIsArray(Info) then
     begin
        for I:=0 to VarArrayHighBound(Info,1) do
        begin
          if (Info[I] = 'UPDATE') then ShowMessage('Update table');
		  if (Info[I] = 'INSERT') then ShowMessage('Insert table');
        end;
     end;
   end
end;  

Below is an example use of dbms_alert.signal

CREATE OR REPLACE TRIGGER QD.FIXED_TABLE
  AFTER INSERT OR UPDATE ON QD.FIXED_TABLE
  FOR EACH ROW
DECLARE
 msg VARCHAR2(128);
BEGIN
   IF INSERTING THEN
     msg := 'INSERT';
	 dbms_alert.signal('CHANGE', msg);
  ELSIF UPDATING THEN
    msg := 'UPDATE';  
	dbms_alert.signal('CHANGE', msg);
  END IF;
END;