Interbase - pegar os relacionamentos vai select |
Top Previous Next |
// pegar os relacionamentos
select distinct Rel.rdb$relation_name TableName, Rel.rdb$field_name FieldName, Fld.rdb$field_type FieldType, Fld.rdb$field_sub_type FieldSubType, FCon.rdb$Relation_Name ForeignTableName, FIseg.rdb$Field_Name ForeignFieldName from rdb$relation_fields Rel left join rdb$relation_constraints Con on (Con.rdb$relation_name = Rel.rdb$relation_name and Con.rdb$constraint_type like 'FOREIGN%') left join rdb$indices IDX on IDX.rdb$index_name = Con.rdb$index_name left join rdb$index_segments ISeg on (ISeg.rdb$index_name = Idx.rdb$index_name and ISeg.rdb$Field_Name = Rel.rdb$field_name) left join rdb$Relation_Constraints FCon on FCon.rdb$index_name = Idx.rdb$Foreign_Key left join rdb$index_segments FIseg on (FISeg.rdb$index_name = Idx.rdb$Foreign_key and FISeg.rdb$Field_Position = ISeg.rdb$Field_Position), rdb$fields Fld, rdb$Relation_Fields RFld where Rel.rdb$relation_name not like 'RDB$%' and Fld.rdb$field_name = Rel.rdb$field_source and RFld.rdb$Relation_Name = Rel.rdb$Relation_name and RFld.rdb$field_name = Rel.rdb$field_name order by Rel.rdb$relation_name, RFld.rdb$Field_ID; |