Tuesday, August 22, 2006

GrialCombo, Nuevo Método para refrescar los datos luego de una Alta o Modificación

Sub LoadOnCurrentRecord ( ByVal IDValue As Long)hibiscus.jpg

Este método cargará un único registro desde la base de datos dado el ID y lo almacenará en el registro actual del combo. Se recomienda su uso ya que es más rápido que el mecanismo anterior que consistía en recargar totalmente el combo (LoadData) y luego reposicionarlo.

Para utilizarlo se requiere que el combo este posicionado en el registro que se desea actualizar o en el caso de un registro recién agregado en la base, que este posicionado en un registro en blanco, es decir que se halla llamado a PrepareAddNew en el BUTTON_NEW.

El método  ejecuta el query del combo pero con un where para el ID indicado. El registro resultante lo carga sobre la posición actual del combo, actualizando los datos.

En los módulos preexistentes que se modifiquen se recomienda utilizarlo por la mejora de performance y dismunución de solicitudes sobre la base de datos, reemplazando el LoadData+Position o LoadData+Asignación de CurrentValue, por una llamda a LoadOnCurrentRecord. Tambien verificar que se esté llamando a PrepareAddNew en el BUTTON_NEW.

Forma de Uso, ejemplo:

En el ButtonClick:
Case BUTTON_NEW
    SicTeso92_scb.PrepareAddNew

En el BottomButtonClick:
Case BUTTON_NEW, BUTTON_MODIFICATION
    …
    GrialCont.Apply Txn
    If GrialCont.LastButton = BUTTON_NEW  Then IDSicTeso92 = Txn.NewIDValue
    SicTeso92_scb.LoadOnCurrentRecord IDSicTeso92

Case BUTTON_DELETE
    …
    GrialCont.Apply Txn
    SicTeso92_scb.DeleteRecord

2 comments:

xxx said...

Es lo mismo usar Txn o la forma anterior de realizar las consultas?

Lucio said...

Las dos formas funcionan, pero es preferible usar el objeto "GrialTransaction"
Referencia: Nota_de_Compatibilidad, Objeto SqlQuery