project BLF > class Database Component > method EventPublishingLookForUpdates
Description
look for a record in the class tables with updates (tc_Status not empty)
Parameters
icParentTable | input | character | |
icParentRowid | input | character | |
bcQueryNames | input-output | character | |
bcQueryHandles | input-output | character | |
olUpdateFound | output | logical | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
program code (program1/database.p)
for each bDynRel where
(bDynRel.tcFcFrom = icParentTable and
bDynRel.tcParent = "") or
bDynRel.tcParent begins (icParentTable + ",") on error undo, throw:
viFcCount1 = lookup(bDynRel.tcFcTo,bcQueryNames).
if viFcCount1 = 0
then do:
create query vhQuery in widget-pool "non-persistent".
vhQuery:set-buffers(bDynRel.thFcBuffer).
bcQueryNames = bcQueryNames + "," + bDynRel.tcFcTo.
bcQueryHandles = bcQueryHandles + "," + string(vhQuery).
end.
else vhQuery = widget-handle(entry(viFcCount1,bcQueryHandles)).
vhQuery:query-prepare("for each t_o":U + bDynRel.tcFcTo + " where t_o"
+ bDynRel.tcFcTo + ".tc_ParentRowid = '" + icParentRowid + "' and t_o"
+ bDynRel.tcFcTo + ".tc_Status <> ''").
vhQuery:query-open().
vhQuery:get-first().
vlFcOk = vhQuery:query-off-end.
vhQuery:query-close().
if vlFcOk
then do:
assign vhBuffer = bDynRel.thFcBuffer.
vhQuery:query-prepare("for each t_o":U + bDynRel.tcFcTo).
vhQuery:query-open().
vhQuery:get-first().
do while not vhQuery:query-off-end:
<M-1 run EventPublishingLookForUpdates
(input bDynRel.tcFcTo (icParentTable),
input vhBuffer::tc_Rowid (icParentRowid),
input-output bcQueryNames (bcQueryNames),
input-output bcQueryHandles (bcQueryHandles),
output olUpdateFound (olUpdateFound),
output viFcReturnSuper (oiReturnStatus)) in database>
if olUpdateFound
then do:
vhQuery:query-close().
return.
end.
vhQuery:get-next().
end.
vhQuery:query-close().
end.
else do:
olUpdateFound = yes.
return.
end.
end.