Hola Al,
Gracias por la respuesta. Estoy viendo en el DataModule las propiedades del Provider y del ZQuery en lo que son los campos:
La propiedad SQL del ZQuery contiene:
Código SQL
[-]select * from regoper_part_v
where regoper_id= :regoper_id
order by rpp_numpartida
Dado que se trata de una vista y no una tabla, en el evento del Provider OnGetTableName, tengo:
Código Delphi
[-]procedure Tdm.DataSetProvider_RegOper_partGetTableName(Sender: TObject;
DataSet: TDataSet; var TableName: String);
begin
TableName:= 'regoper_part';
end;
Esta mecánica la uso en otras vistas, y me funciona bien. Lo diferente de los otros casos, es que en este que tengo problemas, el query tiene parámetos "where":
where regoper_id= :regoper_id
En el Provider, el UpdateMode lo tengo como "upWhereKeyOnly", y he comprobado tanto en los campos del ZQuery como del ClientDataSet, que:
- Los campos de la tabla actualizables, tengan "[pfInUpdate]"
- Que los campos de la vista no actualizables, no tengan ninguna bandera
- Que el campo ID de la vista/tabla, tenga "[pfInUpdate,pfInWhere]"
En el enlace que me indicas, Bauhaus tenía el problema de que externamente se le estaba modificando el "upWhereKeyOnly" a "upWhereAll", más no entendí muy bien de qué manera podría rastrearse eso en el código.
Como comentaba, tengo otros 4 ZQueries en donde no tengo problema con el ApplyUpdates, excepto con este, que tiene un parámetro "where" en la sentencia SQL y que uso para agrupar los detalles asociados a una tabla maestro. Qué podrá ser?
Gracias,
Guillermo