Borrar hijos al cancelar padre

Consultas, trucos, consejos. Todo sobre Clarion en todas sus versiones
Cristian78
Al nivel de RZ
Mensajes: 108
Registrado: Dom Abr 17, 2011 6:07 pm
Contactar:

Borrar hijos al cancelar padre

Mensaje por Cristian78 » Vie Ago 26, 2011 2:45 pm

Tengo un usuario que me pide que, dado 2 tablas relacionadas, si quiero cancelar un registros padre, luego de haber dado altas registros hijos, borrar automaticamente y de una todos los hijos. Alguien resolvio este tema de maera simple? Que opciones sugieren?
Gracias


Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1125
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: Borrar hijos al cancelar padre

Mensaje por Mauricio » Vie Ago 26, 2011 2:48 pm

No entendí. Es un cascade delete o me estoy perdiendo de algo?
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

Cristian78
Al nivel de RZ
Mensajes: 108
Registrado: Dom Abr 17, 2011 6:07 pm
Contactar:

Re: Borrar hijos al cancelar padre

Mensaje por Cristian78 » Vie Ago 26, 2011 2:53 pm

Explico de otra manera con un ejemplo.

Tengo un browse, y presiono insert que me lleva a un formulario, el cual tiene otro browse de una tabla hijos. Luego comienzo a dar de altas los hijos, Puede ser una tabla PERSONAS con una tabla hija telefonos. El usuario aun no dio el Ok en la ventana de registro padre, no obstante decide cargar varios hijos, (telefonos), pero decide no dar de alta el padre, o sea cancelar la el formulario, pero ya dio de alta hijos. Alguna sugerencia para que me borre estos hijos si quiero cancelar el alta del padre?

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1125
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: Borrar hijos al cancelar padre

Mensaje por Mauricio » Vie Ago 26, 2011 3:02 pm

Estás cometiendo un error básico. Vos no podés dar de alta hijos si no tenés el padre, es anti-natural. En esos casos tenés que trabajar con, o bien una queue, o bien una tabla de memoria (necesitás el driver in-memory para esto último). Das de alta todos los hijos que quieras pero estos no se graban físicamente hasta que no confirmes la grabación del padre.
El mejor lugar para eso es el punto embebido TakeCompleted, después del parent call. Ahí preguntás si LocalResponse = RequestCompleted (lo que te indica que la grabación del padre se llevó a cabo) y recién ahí recorrés la queue/tabla y grabás los hijos.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

osquiabro
Al nivel de RZ
Mensajes: 179
Registrado: Dom Feb 06, 2011 10:06 pm
Contactar:

Re: Borrar hijos al cancelar padre

Mensaje por osquiabro » Vie Ago 26, 2011 4:26 pm

otra alternativa al IMM-Drive es el template de SuperInvoice.
Saludos!

Omar Squiabro
Puerto Rico

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1125
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: Borrar hijos al cancelar padre

Mensaje por Mauricio » Vie Ago 26, 2011 4:34 pm

El SuperSecurity usa queues, así que básicamente es lo que había sugerido.
Sin ánimo de criticar la implementación, el grabar los hijos antes del padre es un error muy común y no es una buena práctica en absoluto. Clarion permite asignarle el valor asignado al registro pero eso puede dar lugar a muchos errores. Por ejemplo, el sistema en el que estoy trabajando, tiene relaciones de ese tipo pero no usando un campo autonumerado que no sea modificable por el usuario sino el número (de cliente, proveedor, artículo). Entonces al momento de grabar los hijos toma ese número y lo asigna. Se puede dar el caso que un usuario ingresa el cliente 100, carga 20 teléfonos de ese cliente y luego, en el momento de grabar, decide modificar el código del cliente y ponerle 1000. Conclusión: el cliente 1000 no tiene un solo teléfono y quedan 20 teléfonos sin "padre". Por eso solo hay que grabar una vez que nos aseguramos que el padre está en las tablas.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

Cristian78
Al nivel de RZ
Mensajes: 108
Registrado: Dom Abr 17, 2011 6:07 pm
Contactar:

Re: Borrar hijos al cancelar padre

Mensaje por Cristian78 » Sab Ago 27, 2011 12:19 pm

Gracias por las sugerencias, y como bien dice, es un error basico y comun, pero tambien, si contruis una aplicacion sencilla o te fijas en algunos ejemplos que tiene el clarion, vienen desarrollados de esta manera, por lo que habria que advertirles a esta gente sobre esto para que la gente que comienza a utilizar el clarion tengan desde el principio, advertencias para no cometer este error desde la programacion.

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1125
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: Borrar hijos al cancelar padre

Mensaje por Mauricio » Sab Ago 27, 2011 12:36 pm

Que la aplicación sea sencilla no significa que deba estar mal programada, o sí? Los ejemplos de Clarion son bastante básicos (y han sido los mismos, años tras años) y no sé si hay que prestarles tanta atención.
Me acordé que Daniel Ruzo había hecho un template para lo que vos necesitás, si no lo encontrás (probablemente en la página de Evolution esté), avisame y veo si te lo puedo conseguir.
Saludos.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

Cristian78
Al nivel de RZ
Mensajes: 108
Registrado: Dom Abr 17, 2011 6:07 pm
Contactar:

Re: Borrar hijos al cancelar padre

Mensaje por Cristian78 » Lun Ago 29, 2011 8:10 pm

Cuando puedas pasame el template del que me hablas, lo busque pero no lo encontre, por lo pronto solucione al precionar el Insert de alta el padre, lo guarde e inmediatamente pasa a estado, ?change. Hasta ahora no lo habia previsto porque ningun cliente me habia planteado este tema, ya que configurada la integridad referencial en el diccionario crei que lo solucionaba todo ya que si no grabaste el padre, teniendo hijos, no te deja cancelar. Agradesco los comentarios.

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1125
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: Borrar hijos al cancelar padre

Mensaje por Mauricio » Lun Ago 29, 2011 9:38 pm

Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 21 invitados