Ver Mensaje Individual
  #1  
Antiguo 10-11-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
Question edbclient: no corresponding master record found

Hola,

tengo una relación Maestro/detalle usando ClientDataSets anidados; todo funcionaba a la perfección... inserciones, borrados, cambios en padre, en hijo, y todo estaba bien. Ayer tuve que modificar la tabla padre, que realmente es un view... Comenzaron los problemas. Al insertar un hijo, ClientDataSet me envía el error "edbclient: no corresponding master record found".
He debuggeado, y el nuevo registro hijo contiene correctamente la FK al padre.
hice una forma de prueba, con dos grids... el del padre y el hijo, y al mover los registros de padre, hay sincronización correcta con el grid hijo.

Por si las dudas, al insertar el hijo, hice esto:

Cita:
procedure Tz_DataModule_Seguridad.ClientDataSet_Usuario_Grupo_xBeforePost(
DataSet: TDataSet);
begin
if DataSet.State = dsInsert then
begin

DataSet.FieldByName( 'usuario_id' ).AsString:= Self.ClientDataSet_Usuario.FieldByName( 'usuario_id' ).AsString;

end;
Más no es necesario, ya que al parecer internamente se asignan estos valores, al tener ClientDataSet anidados.

Para la actualización de datos del ClientDataSet anidado, tengo esto:

Cita:
procedure Tz_DataModule_Seguridad.DataSetProvider_UsuarioGetTableName(
Sender: TObject; DataSet: TDataSet; var TableName: WideString);
begin
if DataSet.Name = 'SQLDataSet_Usuario_Grupo_x' then
TableName:= 'Z_USUARIO_GRUPO_X'
else if DataSet.Name = 'SQLDataSet_Usuario' then
TableName:= 'Z_USUARIO';

end;
Lo cual venía funcionando perfectamente.

Qué podrá ser??
Responder Con Cita