Ver Mensaje Individual
  #3  
Antiguo 21-03-2009
alquimista_gdl alquimista_gdl is offline
Miembro
 
Registrado: ago 2008
Ubicación: Guadalajara, México
Posts: 78
Reputación: 16
alquimista_gdl Va por buen camino
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
Responder Con Cita