BeforeAddRelation, AfterAddRelation, BeforeDropRelation, AfterDropRelation
There are only two types of database events for relations: adding and removing. When a relation is modified, it's first removed and then re-added, so both the remove and add events fire.
Usage |
PROCEDURE DBC_BeforeAddRelation( cRelationID, cTableName, cRelatedChild, cRelatedTable, cRelatedTag ) PROCEDURE DBC_AfterAddRelation( cRelationID, cTableName, cRelatedChild, cRelatedTable, cRelatedTag ) PROCEDURE DBC_BeforeDropRelation( cRelationID, cTableName, cRelatedChild, cRelatedTable, cRelatedTag ) PROCEDURE DBC_AfterDropRelation( cRelationID, cTableName, cRelatedChild, cRelatedTable, cRelatedTag ) |
Parameter |
Value |
Meaning |
cRelationID |
Character |
The name of the relation (which is often something like "Relation 1"). |
cTableName |
Character |
The name of the child table. |
cRelatedChild |
Character |
Although you can't tell from the dumb name for this parameter, it's the tag for the child table. |
cRelatedTable |
Character |
The name of the parent table. |
cRelatedTag |
Character |
The tag for the parent table. |
Example |
* This goes in the stored procedures of the database. PROCEDURE DBC_AfterDropRelation(cRelationID, cTableName, ; cRelatedChild, cRelatedTable, cRelatedTag) WAIT WINDOW PROGRAM() + CHR(13) + ; "Child: " + cTableName + "." + cRelatedChild + CHR(13) + ; "Parent: " + cRelatedTable + "." + cRelatedTag PROCEDURE DBC_BeforeDropRelation(cRelationID, cTableName, ; cRelatedChild, cRelatedTable ,cRelatedTag) WAIT WINDOW PROGRAM() + CHR(13) + ; "Child: " + cTableName + "." + cRelatedChild + CHR(13) + ; "Parent: " + cRelatedTable + "." + cRelatedTag PROCEDURE DBC_AfterAddRelation(cRelationID, cTableName, ; cRelatedChild, cRelatedTable ,cRelatedTag) WAIT WINDOW PROGRAM() + CHR(13) + ; "Child: " + cTableName + "." + cRelatedChild + CHR(13) + ; "Parent: " + cRelatedTable + "." + cRelatedTag PROCEDURE DBC_BeforeAddRelation(cRelationID, cTableName, ; cRelatedChild, cRelatedTable ,cRelatedTag) WAIT WINDOW PROGRAM() + CHR(13) + ; "Child: " + cTableName + "." + cRelatedChild + CHR(13) + ; "Parent: " + cRelatedTable + "." + cRelatedTag * End of stored procedures. * Open the database and turn on DBC events. OPEN DATABASE TestData DBSetProp('TestData', 'Database', 'DBCEvents', .T.) * Change an existing relation to see events fire. ALTER TABLE Orders ALTER COLUMN Cust_ID C(6) REFERENCES Customer |
See Also |