Thanks Arnuad,
however, that will work, but requires a bunch of 'work'.

Thanks to Keisuke, again :), his query component contains code that 
pulls all relations ENDING (where the current field of parent table is 
the many of a one to many relation). without having to troll through 
the entire table structure.

So my final code looks like this:

For (all valid fields of parent table)
 query hidden structure definition tables for related many
 on current parent table field
  if (related many exist)
   clear selections on those tables
   if (records in selection of any related many tables >0)
    exit loop
    $Dependancies_Exist := true
   end if
    if Records in selection one table >0)
     exit loop
     $Dependancies_Exist := true
    end if
  end if    
end for
$0:= $Dependancies_Exist 

On Thu, 10 Jan 2019 17:02:52 +0100, Arnaud de Montard via 4D_Tech wrote:
>> Le 8 janv. 2019 à 21:47, Chip Scheide via 4D_Tech 
>> <> a écrit :
>> given a pointer to a table, or a pointer to a field of a table,
>> I want to be able, for the current record of this table, to :
> Hi Chip, 
> I use this for foreign keys: 
> //DB_getForeignKeys (aTable_p)
> $parentTable_l:=Table($1)
> $FKarray_p:=$2
> CLEAR VARIABLE($FKarray_p->)
> For ($table_l;1;Get last table number)
>       Case of
>               : (Not(Is table number valid($table_l)))
>               : ($table_l=$parentTable_l)
>       Else
>               For ($field_l;1;Get last field number($table_l))
>                       If (Is field number valid($table_l;$field_l))
>                               GET RELATION 
> PROPERTIES($table_l;$field_l;$destinationTable_l;$destinationField_l)
>                               If ($parentTable_l=$destinationTable_l)
>                                       APPEND TO 
> ARRAY($FKarray_p->;Field($table_l;$field_l))
>                               End if
>                       End if
>               End for
>       End case
> End for
> $0:=Size of array($FKarray_p->)
> Primary is easier, just loop through fields of the start table and 
> check if a relation exists for the current one (as above). 
> -- 
> Arnaud de Montard 
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> Archive:
> Options:
> Unsub:
> **********************************************************************
Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing 
4D Internet Users Group (4D iNUG)

Reply via email to