Maxter
05-08-2003, 21:12:19
Tengo una aplicación sencilla de captura de facturas.
Uso Delphi 5, y componentes sencillos: TTable (con CachedUpdates = True) y TDataSource con un DBGrid .
Para trabajar he elegido usar Cached Updates y todo trabajaba bien hasta que decidí tratar de mostrar un ProgressBar que reflejara el progreso de la actualización. Para tal efecto decidí usar el evento OnUpdateRecord que sería el que afectaría el avance en el ProgressBar. Sin embargo no funciona como esperaba. He escrito el valor de UpdateAction a uaApplied, pero en la tabla no se escribe nada. No me marca ningún error, ni nada. Si no le doy a UpdateAction ningún valor, entonces me marca un error de 'Table is Read Only'. Si elimino el evento OnUpdateRecord, la actualización de lleva a cabo correctamente.
Resumiendo:
procedure TFEditFactsMany.TFactsGeneralUpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
UpdateAction:= uaApplied
end;
no actualiza la tabla
procedure TFEditFactsMany.TFactsGeneralUpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
// otro código cualquiera que no
// cambia el puntero de registro
end;
marca 'Table Is ReadOnly'
y sin el evento todo trabaja bien.
Ojalá alguien me pueda dar una pista de porqué este comportamiento, qué estoy haciendo mal. O bien, si hay otra forma de presentar un ProgressBar al usuario que muestre el avance de la actualización.
De antemano muchas gracias.
Uso Delphi 5, y componentes sencillos: TTable (con CachedUpdates = True) y TDataSource con un DBGrid .
Para trabajar he elegido usar Cached Updates y todo trabajaba bien hasta que decidí tratar de mostrar un ProgressBar que reflejara el progreso de la actualización. Para tal efecto decidí usar el evento OnUpdateRecord que sería el que afectaría el avance en el ProgressBar. Sin embargo no funciona como esperaba. He escrito el valor de UpdateAction a uaApplied, pero en la tabla no se escribe nada. No me marca ningún error, ni nada. Si no le doy a UpdateAction ningún valor, entonces me marca un error de 'Table is Read Only'. Si elimino el evento OnUpdateRecord, la actualización de lleva a cabo correctamente.
Resumiendo:
procedure TFEditFactsMany.TFactsGeneralUpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
UpdateAction:= uaApplied
end;
no actualiza la tabla
procedure TFEditFactsMany.TFactsGeneralUpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
// otro código cualquiera que no
// cambia el puntero de registro
end;
marca 'Table Is ReadOnly'
y sin el evento todo trabaja bien.
Ojalá alguien me pueda dar una pista de porqué este comportamiento, qué estoy haciendo mal. O bien, si hay otra forma de presentar un ProgressBar al usuario que muestre el avance de la actualización.
De antemano muchas gracias.