Delphi - Evento OnUpdateRecord

 
Vista:

Evento OnUpdateRecord

Publicado por Marina (64 intervenciones) el 26/11/2001 14:37:10
Tengo el siguiente problema, por favor si alguien me puede ayudar.

Trabajo con Delphi 4, tablas Paradox, Query, CachedUpdates en True y Transacciones.

Estoy cargando nuevos registros en una tabla y necesito hacer lo siguiente:
- Tengo que comprobar primero si es posible la inserción de ese nuevo registro, por lo tanto hago ApplyUpdates del query, pero no hago el Commit.
- En caso que la inserción sea posible tengo una función de control de un proceso especial, la cual si me devuelve True habilita para hacer el Commit en la base de datos, si me devuelve False debe volver a editar el registro que estaba cargando (que los dbedits sigan conteniendo los datos que ya había cargado), incluyendo la posibilidad de cambiar el campo clave.

Las cosas que probé y no logré hacer funcionar fueron las siguientes:
- Que la función de control llamara al procedimiento Abort, para que cortara toda la operación, esto volvía a un lugar donde se volvía a hacer Edit del registro. Esto funcionaba bien si al editar nuevamente el registro no se cambiaba el campo clave; si lo cambiaba me arrojaba el error "Record lock failed", lo que es totalmente lógico porque intentaba ejecutar la sentencia SQL del Modifica asignada al componente TUpdateSQL, la cual tiene como control el campo clave.
Para solucionar esto me recomendaron configurar el procedimiento OnUpdateRecord del query, en el cual si estaba activada una señal, se llamaba a la sentencia del Insert del componente TUpdateSQL en lugar de la de Modifica. Esto solucionó el tema del error "Record lock failed", pero no funcionó, puesto que me aparecía un registro en blanco y el anterior que aun no había terminado de confirmar, se grababa. A raíz de esto me dediqué a probar otra cosa.

- Program%
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder