Ver Mensaje Individual
  #1  
Antiguo 06-11-2005
Avatar de Thales
Thales Thales is offline
Miembro
 
Registrado: ago 2005
Posts: 48
Reputación: 0
Thales Va por buen camino
Detectar modificaciones en el provider

Muy buenas.
Veréis, utilizo el evento BeforeUpdateRecord del proveedor, y en particular, el parámetro DeltaDS para obtener los campos que han sido modificados en el ClientDataSet y así poder generar yo mismo las instrucciones a mandar a la base de datos.
Esto es posible porque si en el ClientDataSet se modifica un campo, DeltaDS.FieldByName('Campo') será no nulo y contendrá en la propiedad Value el nuevo valor introducido.
Mi problema es que esto no es cierto a la inversa, es decir, si dicho valor es nulo no significa que el campo no se haya modificado, pues de hecho el cliente ha podido modificarlo para suprimir su valor, y por tanto no tengo manera de distinguir a nivel de proveedor entre los campos no modificados y los campos suprimidos por el cliente.

Utilizo Delphi 7 y TClientDataSet+TDataSetProvider+IBX

Un saludo
Thales
Responder Con Cita