José Luis,
> Pero en esto hay algo que no acabo de entender. Mientras lUpdLinked :=
> .F. los datacontrols no 'actualizan' su valor. Y cuando lUpdLinked :=
> .T., justo en ese momento, el DataSet actualiza los valores de sus
> datacontrols. ¿Es correcto?
No, no es correcto.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Luis Capel" <
jose.luis@iaicom.com> escribió en el mensaje
news:[email=
45138eac@news.xailer.com...]
45138eac@news.xailer.com...[/email]
> Ignacio,
>
> Muchísimas gracias por tu respuesta.
>
>>
>> Es completamente normal, porque cuando navegas por el DBGrid, este, lo
>> único
>> que hace es notificar a su DataSet de las operaciones de navegación. El
>> dataset realiza operación solicitada y se lo vuelve a tranmitir a todos
>> los
>> DataControls incluido el DBGrid. Para que lo entiendas, el DBGrid no
>> tiene
>> ni idea de como hacer un SKIP. La operación realmente la hace el DataSet,
>> pero el DbBrowse no asume ningún tipo de cambio en su visualización.
>> Posteriormente es el DataSet el que notifica al Browse de la operación, y
>> este reacciona. Es un poco enrevesado, pero tiene que ser así.
>
> Creo que lo he entendido.
>
>
>>
>> Si quitas el lUPdLinked pues entonces paso lo que te ocurre y es que el
>> Browse se queda muerto y no responde a las operaciones de navegación
>> sobre
>> si mismo.
>>
>
> Correcto, mientras lUpdLinked := .F. los datacontrols no reaccionan.
>
>
>> La propiedad lUpdLinked a FALSO está pensanda precisamente para que los
>> DataControls NO SE ENTEREN de ciertos movimientos en el Dataset, como por
>> ejemplo, realizar un Seek en la misma tabla que se hace un browse para
>> comprobar una clave primaria.
>>
>
> Pero en esto hay algo que no acabo de entender. Mientras lUpdLinked :=
> .F. los datacontrols no 'actualizan' su valor. Y cuando lUpdLinked :=
> .T., justo en ese momento, el DataSet actualiza los valores de sus
> datacontrols. ¿Es correcto? Si esto es correcto, entiendo que el dbBrowse
> no recibe correctamente la notificación/actualización cuando el memdataset
> está vacio. Te acompaño un segundo ejemplo donde hago la misma operación
> que en el ejemplo anterior. Solo que en este caso no elimino todos los
> elementos sino la mitad. Ambos browses actúan de forma _idéntica_.
>
> Saludos y nuevamente gracias por tu tiempo y explicaciones.
> José Luis Capel
>
>
>
>