Estimado Luis:
En lugar de ADO, yo trabajo con el TTable a través del BDE. Pero la idea me ha servido. Creo que es interesante que cuelgue el código tal y como lo tengo en el desarrollo de mi aplicación, para quien pueda interesar.
Código:
procedure TDataModulo.tbCabalbBeforeOpen(DataSet: TDataSet);
begin
{
NOTA: Los campos persistentes se crean aquí para adaptar el programa a las nueva
estructura de la tablas, creadas desde código. Una vez que las tablas han
sido reestructuras en el equipo del usuario, "lo normal" es crear los
campos persistentes desde el editor de columnnas del componente TTable co-
rrespondiente.
}
If tbCabalb.FieldDefs.IndexOf('RES_CALB')<>-1 Then
Begin
tbCabalbRES_CALB:=TStringField.Create(Self);
tbCabalbRES_CALB.FieldName:='RES_CALB';
tbCabalbRES_CALB.DataSet:=tbCabalb;
tbCabalbRES_CALB.FieldKind:=fkData;
end;
If tbCabalb.FieldDefs.IndexOf('FRES_CALB')<>-1 Then
Begin
tbCabalbFRES_CALB:=TDateField.Create(Self);
tbCabalbFRES_CALB.FieldName:='FRES_CALB';
tbCabalbFRES_CALB.DataSet:=tbCabalb;
tbCabalbFRES_CALB.FieldKind:=fkData;
end;
end;
procedure TDataModulo.tbCabalbAfterClose(DataSet: TDataSet);
begin
If tbCabalbRES_CALB<>Nil Then
tbCabalbRES_CALB.Free;
If tbCabalbFRES_CALB<>Nil Then
tbCabalbFRES_CALB.Free;
end;
Saludos y gracias.