I'm trying to create a series of After "action" (insert, delete, update)
triggers for an ADT table that upon firing will perform that "action" on a
dbf table to keep them synchronized. The reason is that some of our older
applications use direct table access via Clipper. At first, I thought that
using the Advantage RDD might resolve the issue, but it appears that the RDD
can't use ADT tables - hence the trigger work-around.

The issue I've encountered is that when the trigger fires it uses
Proprietary (ADS) LockingMode on the target of the trigger. As you can
imagine it causes the table to be locked in a way that either won't fire the
trigger if another application has the table open or disallows it to be
opened.

Is there a way to force triggers to use Compatible LockingMode or is this
working as intended? It really seems like an oversight or bug to me because
using Compatible LockingMode seems to be the best solution. Based on my
testing if you open an ADT table with Compatible locking it forces
Proprietary anyway.

Any ideas on this are welcome.

Here's an example of the triggers:

CREATE TRIGGER OnDelete
ON Table
AFTER
DELETE
BEGIN
DELETE FROM Target WHERE Column IN (SELECT Column FROM __old);
END
PRIORITY 1;

CREATE TRIGGER OnInsert
ON Table
AFTER
INSERT
BEGIN
INSERT INTO Target SELECT Column1 as "Name1", Column2 as "Name2" FROM
__new;
END
PRIORITY 1;

CREATE TRIGGER OnUpdate
ON Table
AFTER
UPDATE
BEGIN
UPDATE Target SET Target.Column1 = Table.Column1, Target.Column2 =
Table.Column2 FROM __new WHERE Target.Column1 IN (SELECT Table.Column1 FROM
__old);
END
PRIORITY 1;