...but Foreign Key support is just useless, especially for SqlConnection. Just look at the table signature:
| ColumnName | DataType | Description |
| constraint_catalog | String | Catalog the constraint belongs to. |
| constraint_schema | String | Schema that contains the constraint. |
| constraint_name | String | Name. |
| table_catalog | String | Table Name constraint is part of. |
| table_schema | String | Schema that that contains the table. |
| table_name | String | Table Name |
| constraint_type | String | Type of constraint. Only "FOREIGN KEY" is allowed. |
| is_deferrable | String | Specifies whether the constraint is deferrable. Returns NO. |
| initially_deferred | String | Specifies whether the constraint is initially deferrable. Returns NO. |
Quite disappointing, since there's no sign of columns involved. And there's no other GetSchema() way to get them. OracleConnection, on the other hand has a collection called ForeignKeyColumns, which returns columns included for a given FK relationship in a given table. Once you have the FK relation, you should query both sides to get the full column list, though, but better than nothing.
So, with SqlConnection, I use sp_fkeys in ActiveWriter. I wish I could just use GetSchema(), to keep things simple. Sad.