Description
update tc_ParentRowid for relations with primary override = true
Parameters
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
program code (program1/persistence.p)
for each tDynRel where
tDynRel.tcParent <> "",
each bDynRel where
bDynRel.tcFcTo = entry(1,tDynRel.tcParent)
on error undo, throw:
assign viFields = num-entries(tDynRel.tcParent).
do viFcCount1 = 2 to viFields:
vhField[viFcCount1] = bDynRel.thFcBuffer:buffer-field(entry(viFcCount1,tDynRel.tcParent)).
end.
create query vhOQuery in widget-pool "non-persistent".
vhOQuery:forward-only = yes.
vhOQuery:set-buffers(tDynRel.thFcBuffer).
create query vhIQuery in widget-pool "non-persistent".
vhIQuery:forward-only = yes.
vhIQuery:set-buffers(tDynRel.thFcIBuffer).
create query vhPQuery in widget-pool "non-persistent".
vhPQuery:forward-only = yes.
vhPQuery:set-buffers(bDynRel.thFcBuffer).
vhPQuery:query-prepare("for each t_o":U + bDynRel.tcFcTo).
vhPQuery:query-open().
vhPQuery:get-first().
do while not vhPQuery:query-off-end:
vcQuery = tDynRel.tcLookupParent.
do viFcCount1 = 2 to viFields:
if vhField[viFcCount1]:data-type = "CHARACTER":U
then vcValue = <M-1 EnQuote (input vhField[viFcCount1]:buffer-value (icToQuote)) in persistence>.
else vcValue = string(vhField[viFcCount1]:buffer-value).
vcQuery = replace(vcQuery,"$":U + string(viFcCount1 - 1),vcValue).
end.
vhOQuery:query-prepare(replace(vcQuery,"$TIO","t_o")).
vhOQuery:query-open().
vhOQuery:get-first().
do while not vhOQuery:query-off-end:
tDynRel.thFcBuffer::tc_ParentRowid = bDynRel.thFcBuffer::tc_Rowid.
vhOQuery:get-next().
end.
vhOQuery:query-close.
vhIQuery:query-prepare(replace(vcQuery,"$TIO","t_i")).
vhIQuery:query-open().
vhIQuery:get-first().
do while not vhIQuery:query-off-end:
tDynRel.thFcIBuffer::tc_ParentRowid = bDynRel.thFcBuffer::tc_Rowid.
vhIQuery:get-next().
end.
vhIQuery:query-close.
vhPQuery:get-next().
end.
vhPQuery:query-close().
delete object vhPQuery.
delete object vhOQuery.
delete object vhIQuery.
vhPQuery = ?.
vhOQuery = ?.
vhIQuery = ?.
end.
finally:
if vhPQuery <> ?
then delete object vhPQuery.
if vhOQuery <> ?
then delete object vhOQuery.
if vhIQuery <> ?
then delete object vhIQuery.
end finally.