[Lazarus-es] Problemilla con DeleteSQL

Ismael L. Donis García ismael en citricos.co.cu
Mar Sep 1 15:42:26 CEST 2009


1 Millón de gracias por la explicación.

Por lo que as explicado, se le debería pasar el error al desarrollador del 
componente.

Gracias reiteradas.
=========
|| ISMAEL ||
=========
----- Original Message ----- 
From: "JoshyFun" <joshyfun en gmail.com>
To: "Spanish version of Lazarus List" 
<lazarus-es en lists.lazarus.freepascal.org>
Sent: Monday, August 31, 2009 6:37 PM
Subject: Re: [Lazarus-es] Problemilla con DeleteSQL


Hello Ismael,

Monday, August 31, 2009, 10:53:05 PM, you wrote:

ILDG> Es solo un problema de hábitos, si lo lanzas directamente
ILDG> de todos modos creo que debes comprobar si lo borró, ya que otro
ILDG> usuario lo pudo haber modificado o eliminado antes.

Eso lo comprueba el commit, de hecho es su trabajo. Si un registro ha
sido modificado por otro usuario o borrado y el commit intenta una
modificación dará error debido a que el estado del dataset es
inconsistente con la base de datos, en el caso de borrado no ya que si
lo ha borrado otro ya te ha hecho el trabajo.

No puedes hacerlo de uno en uno (bueno en realidad si puedes) ya que a
cada borrado le seguiría un commit lo cual descarta el dataset actual
y tendrías que recargar el sql completo. El caso es que si estás
editando datos en un datagrid y borras un registro con su commit
correspondiente funciona, pero tu linea de edición pasa a ser la
primera (pierdes la posición dentro del dataset), a parte de que
vuelves a pedirle la base de datos que te vuelva a enviar todos los
datos que ya tienes lo cual es extremadamente ineficiente y a parte
que visualmente sería terrible con un parpadeo de segundos cada vez
que borras un registro, después tener que explorar todo el dataset
registro a registro para posicionarte donde estabas editando, más o
menos, ya que el estado de la base de datos puede haber cambiado y el
registro 185 puedes estar ahora 2000 lineas más abajo (por ejemplo).

Si vienes de MS C++ o similares estarás acostumbrado a hacerte los
datagrid a mano, poniendo tu la sincronización visual con los datos,
pero entonces cosas como el datagrid en Delphi o en Lazarus no
tendrían sentido ya que justo lo que eliminan es ese trabajo
repetitivo de crear grids de edición.

-- 
Best regards,
 JoshyFun


_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es






More information about the Lazarus-es mailing list