>case _triggerlevel = 1 > begin transaction > private plError > plError = .f. > release gaErrors > public gaErrors[1, 12] > aused(laUsed) > lcExact = set('EXACT') > lcANSI = set('ANSI') > lcDeleted = set('DELETED') > lcError = on('ERROR') > set exact on > set ansi on > set deleted on > on error LogRIError(ERROR(),MESSAGE()) &&plError = .t. > >* If we're being called recursively and an error has occurred, exit now. > >case vartype(m.plError) = "L" and m.plError > return >endcase >** First search in the parent column > >lnTParent = ascan(laRelations, m.lcTable, m.lnTParent + 1, ; > m.lnRelations , cnPARENTCOL, 8) > >do while m.lnTParent > 0 and not m.plError > lnI = m.lnTParent > ** Some staff > lnTParent = ascan(laRelations, m.lcTable, m.lnI + 1, ; > m.lnRelations, cnPARENTCOL, 8) >enddo >>
do while BETWEEN(m.lnTParent,1,ALEN(laRelations,1)-1) and not m.plError lnI = m.lnTParent ** Some staff lnTParent = ascan(laRelations, m.lcTable, m.lnI + 1, ; m.lnRelations, cnPARENTCOL, 8) enddo>DO you see a problem which I overlooked?