Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-07-2014
frandigo77 frandigo77 is offline
Miembro
NULL
 
Registrado: abr 2014
Posts: 17
Poder: 0
frandigo77 Va por buen camino
Error al poner TClienTDataSet en estado de edicion

Hola buenas desarrollando en Delphi XE5.. ma ha surgido un problema con el siguiente codigo:
Código Delphi [-]
try
      D.Append;
      Result:= FEditor.Ejecutar(Owner) = mrOk;
finally

D es un TClientDataSet que apunta a un TDataSetField de Otro TClienTDataSet, cuando la linea de ejecución llega a D.Append, delphi lanza el siguiente error.' EDataBaseError 'cdsESPersonal: DataSet not in edfit or Insert Mode'. D apunta a cdsESPersonal.

Gracis.
Responder Con Cita
  #2  
Antiguo 22-07-2014
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 20
ozsWizzard Va por buen camino
Parece que le mensaje dice que lo que vas a hacer afecta a cdsEPersonal y este debería estar en modo Edit o insert.

La verdad es que con un mensaje tan claro, no sé en qué o cómo puede confundirte ésto.

No se qué significa hacer append en un campo, no sé si quieres asignar un valor o insertar un registro, pero deberías hacerlo sobre cdsEPersonal, creo...
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita
  #3  
Antiguo 22-07-2014
frandigo77 frandigo77 is offline
Miembro
NULL
 
Registrado: abr 2014
Posts: 17
Poder: 0
frandigo77 Va por buen camino
...D es un ClientDataSet que apunta a cdsESPersona. La propiedad datasetfield de cdsESPersona apunta a otro TClientDataSet (cdsPersonalLab), es decir cdsESPersona es detalle de cdsPersonaLab...
Responder Con Cita
  #4  
Antiguo 22-07-2014
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 20
ozsWizzard Va por buen camino
Pues entonces es cdsPersonalLab, que entiendo que es la tabla, la que debe estar en modo de edición/inserción.
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita
  #5  
Antiguo 22-07-2014
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 20
ozsWizzard Va por buen camino
y si es D el TClientDataSet, porque me he liado un poco diciéndome que apunta a cdsEPersonal, pon Insert en lugar de append, a ver si fuera eso.
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita
  #6  
Antiguo 22-07-2014
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 20
ozsWizzard Va por buen camino
A ver, entonces D es un TCLientDataSet que apuntan a un TDataSetField (que no sé lo que es, sé lo que es un TFIeld) que a su vez apunta a otro TClientDataSet que es cdsPersonalLab...

Algo raro veo en D.
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita
  #7  
Antiguo 22-07-2014
frandigo77 frandigo77 is offline
Miembro
NULL
 
Registrado: abr 2014
Posts: 17
Poder: 0
frandigo77 Va por buen camino
He probado a poner iNsert y sale el mismo error....
Al abrir cdsPersonaLab el proveedor asociado tb trae los registros de cdsESPersona, la tabal maesra se graba bien en caeche..falla la de detalle
Responder Con Cita
  #8  
Antiguo 22-07-2014
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Cuando se trabaja maestro-detalle usando un TDataSetField (en un TClientDataset), la tabla maestra tiene que estar en modo de edición para poder modificar el detalle. Recuerda que finalmente la tabla hija es simplemente un campo de la tabla maestra.

Código Delphi [-]
  if M.state = dsBrowse then 
    M.Edit; 

  try
      D.Append;
      Result:= FEditor.Ejecutar(Owner) = mrOk;
  finally
     .
     .
     .
Responder Con Cita
  #9  
Antiguo 24-07-2014
frandigo77 frandigo77 is offline
Miembro
NULL
 
Registrado: abr 2014
Posts: 17
Poder: 0
frandigo77 Va por buen camino
Problema solucionado, hay que poner la tabla de detalle en modo de inserción, el sistema maestro detalle no la pone cuando se activa la maestra para inserción/edición ..Gracias.
Responder Con Cita
  #10  
Antiguo 25-07-2014
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 20
ozsWizzard Va por buen camino
Cita:
Empezado por frandigo77 Ver Mensaje
Problema solucionado, hay que poner la tabla de detalle en modo de inserción, el sistema maestro detalle no la pone cuando se activa la maestra para inserción/edición ..Gracias.
O sea, lo primero que te dije...
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Defecto grave de Excel al estar celda en estado de edición Al González Servers 4 25-06-2016 01:09:59
Error de Edicion con DBGrid chipcrazy Varios 1 06-11-2008 12:40:51
Error Consulta Con TClientDataSet... LProject Conexión con bases de datos 8 05-10-2007 18:08:17
Poner TTreeView en modo de edición yusnerqui OOP 3 10-04-2006 19:33:47
Como puedo cambiar la propiedad de edicion y no edicion a un StringGrid1 ctronx Varios 2 25-06-2004 23:10:19


La franja horaria es GMT +2. Ahora son las 19:12:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi