Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   tmemdataset insertar registros maestro/detalle (https://www.clubdelphi.com/foros/showthread.php?t=72640)

anubis 03-03-2011 05:21:54

tmemdataset insertar registros maestro/detalle
 
Pues aqui sigo dando lata, no hay forma de que el "invento" de relacionar directamente dos tablas maestro/detalle para insertar registros me quede.

A ver, porque ya nose como hacerle y que sea "programacion decente".
Ya me habeis dado pistas para hacerlo pero no queda, quiza era por el componente que delphi y lazarus no, de ahi que lo pongo en esta subseccion.
Resumiendo:
tabla contactos
codigo (primaria)
nombre

tabla telefonos
codigotel(primaria)
telefono
codigocontacto (relacionado con codigo de la primera tabla)

he creado dos tmendataset con los mismos campos que las tablas, lo que no se es como relacionar las dos a la hora de insertar registros en las dos, tal y como me apuntaban, no puedo meter registro en la tabla detalle relacionandola con la tabla contactos si la primera todavia no ha sido registrada y viceversa.
en la cara oculta delphi 6 se hace un apunte pero ese componente no lo tengo en lazarus.

Algun ejemplito simple? porque no puede ser tan complicado.

gracias y mis disculpas por seguir con lo mismo.

rrf 03-03-2011 17:25:58

Hola Anubis.

He leido tu mensaje y he estado viendo las propiedades de los tmendataset. Y me parece que puede ser que no permitan la relación Maestro/detalle. Al menos de forma "automática".

Te aclaro que estoy aprendiendo acerca de esto, por lo que no te puedo dar una respuesta completa.

Sin embargo, EN ESTE ENLACE HAY UN MANUAL DE LOS COMPONENTES ZEOS que sí que permiten la relación Maestro/detalle y que explican como hacerlo (de varias formas).

Todo ello es válido para Lazarus (el manual está en la Wiki de Lazarus).

Si esta opción te puede resultar interesante y no te vienen los componentes Zeos instalados de serie en Lazarus, puedes usar la distribución CodeTyphon (EN ESTE ENLACE). Que los incluye de serie cuando se instala.

:) Saludos

anubis 03-03-2011 18:01:36

Gracias por la respuesta,

Los componentes zeos si los tengo instalados y funcionan bien, el codetyphon no he conseguido instalarlo ni por activa o por pasiva siguiendo las instrucciones para linux y windows en sus versiones 32 y 64 bits, pero al final no me acaba generando el archivo lazarus.exe o lazarus.sh que dice no encuentra.

Respecto a maestro/detalle si tengo relacionadas las dos tablas y funcionan en modo consulta pero el problema surge cuando se quiere insertar un registro, si la tabla maestra(contactos) todavia no tiene el codigo de ese registro la tabla de detalle(telefonos) no puede asociarse a la maestra.

Se que no tiene que ser tan dificil porque es la base de las relaciones maestro-detalle.

Se agradece la información que aportas y que ya estoy leyendo, y si parece que arroja algo de luz a mi problema, ahora tengo que ver como se puede implementar ;).

gracias de nuevo

anubis 10-03-2011 01:57:16

buenas de nuevo

Despues de darle muchas vueltas no consigo hacer algo decente con maestro/detalle, he buscado incluso ejemplos pero nada.

El manual de zeos que bien me recomienda rrf no me concuerda con las opciones:
Código Delphi [-]
qryDetailMASTER_ID.Value := qryMasterID.Value

value no aparece en las propiedades del query.

Seguro seguro que estoy haciendo algo mal, pero no doy con ello y eso que es algo básico.

Algun pequeño ejemplo de insertar maestro detalle porque ya no se donde buscar algo que me funcione.

un saludo y humildemente gracias

rrf 10-03-2011 11:32:52

Hola Anubis.

Desde mi último mensaje en este hilo he conocido que los componentes MDO - Mercury Database Objects fueron actualizados el 2011-01-21 (hacía años que no se actualizaban y muchos pensábamos que era un proyecto abandonado).

Son componentes que son casi idénticos a los IBX de Delphi (ambos fueron desarrollados partiendo de los componentes FIB de Delphi).

ESTA ES LA PÁGINA DE DESCARGA.

Aparecen como componentes para Delphi, pero en el mismo texto hablan de que es una opción muy buena para convertir una aplicación Delphi que use IBX a una aplicación Lazarus. Por lo que se deduce que pueden usarse en Lazarus.

En ESTE ENLACE (en inglés) hay un comentario de un problema que dan cuando se usan con relaciones Maestro - Detalle con Lazarus y la causa y solución posible (depende de la versión del compilador FPC).

Si esa opción te sirve, podrás encontrar mucha información a través de los manuales para los IBX y/o para los MDO.

Por cierto, si te manejas medianamente en inglés, te sugiero que veas el FORO DE LAZARUS EN INGLÉS porque contiene mucha información que es difícil encontrar en otras partes.

Recibe un saludo.

anubis 10-03-2011 15:39:24

Te agradezco tus respuestas,

Problema con los componentes zeos no tengo puesto que sí puedo generar una relación maestro detalle a la hora de consultar pero no así a la hora de insertar registros, porque, como decia Chris en otro post, no se pueden agregar registros al detalle si el registro maestro todavia no existe. (La pescadilla que se muerde la cola).
Tambien estoy checando los foros que me comentas, a ver si tengo alguna pista para hacer esto que creo que es tan simple.

Comentan, en otro post de este mismo foro, que para insertar registros en maestro detalle, hay que usar triggers, es lo que tambien estoy viendo, de todas formas cuando consiga hacer la dichosa agenda de telefonos, de una forma u otra, voy a postear el resultado del cómo insertar registros maestro detalle.

Con la cosa de aprender y no ver modo de resolverlo (que lo habra) de la forrma correcta en programacion, pues si frustra un poco.

Un saludo y gracias


La franja horaria es GMT +2. Ahora son las 07:27:02.

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