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
|