Ver Mensaje Individual
  #9  
Antiguo 16-12-2010
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Reputación: 22
Toni Va por buen camino
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();
 rdb_indices->ParamByName("P_TABLA")->AsString = Tabla;
 rdb_indices->Open();
 rdb_indices->First();
 while(!rdb_indices->Eof)
  {
    DataSet->FieldByName(rdb_indices->FieldByName("rdb$field_name")->AsString.Trim())->ProviderFlags <Next();
  }
 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
__________________
Saludos,

Bitman
Responder Con Cita