Hola a todos,
Por el momento lo tengo solucionado llamando desde el evento AfterOpen del IBQuery a la funcion AsignarCamposClavePrincipal:
Código Delphi
[-]
void __fastcall TDM2::AsignarCamposClavePrincipal(TDataSet *DataSet, AnsiString Tabla)
rdb_indices->Close();
}
Este es codigo SQL del IBquery rdb_indices que se utiliza en la funcion:
Código SQL
[-]select i.rdb$field_name
from rdb$relation_constraints rc, rdb$index_segments i, rdb$indices idx
where i.rdb$index_name = rc.rdb$index_name and
idx.rdb$index_name = rc.rdb$index_name and
rc.rdb$constraint_type = 'PRIMARY KEY' and
rc.rdb$relation_name = :P_TABLA