FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
maestro/detalle con temporales
Hola amigos,
Tengo una relación maestro/detalle que funciona bien salvo a la hora de insertar nuevos registros. La pregunta es si al insertar un nuevo registro en la tabla maestra y que no existe en la detalle hasta que complete el registro, para evitar errores si es perfectamente valido usar una tabla temporal para la de detalle y despues pasar esos registros. O de que otra forma se podría hacer. tablas: maestra facturas -------- numfactura coddetalle ... lineasfactura ------------ numfactura lineasdetalle gracias |
#2
|
||||
|
||||
Depende cómo tengas hecho ese maestro/detalle.
Si es un select del detalle mediante el un campo del maestro, entonces simplemente no aparecerá nada en el detalle (obviamente), por lo que no hay nada que hacer, todo perfecto. EDITO: creo que dices que das de alta el maestro cuando has dado de alta algo en el detalle. No es un buen método, debes dar de alta primero el maestro, sería lo idóneo. |
#3
|
||||
|
||||
Gracias por responder casimiro .
Como estoy haciendo una prueba, tengo todas las relaciones asignadas en el inspector de objetos, y para ver si funciona (uso sqlite), desde un sqlite manager "meti" los datos a mano, esto es, 2 numeros de factura en el maestro y varios registros en el detalle asignando amano el numero de factura tablas: maestra facturas -------- numfactura coddetalle ... lineasfactura ------------ numfactura lineasdetalle ya en el programa usando un dbgrid, al insertar un nuevo registro, debido a la relacion que ya tiene maestro/detalle, me aparecen los detalles |
#4
|
||||
|
||||
Quieres decir entonces que funciona bien, no?
|
#5
|
||||
|
||||
funciona bien sino añado nada, solo consultas.
Lo que queria es añadir registros al maestro y al detalle, pero en detalle, el codigo de la factura todavia no existe porque no se dio de alta primero. La pregunta es si para el detalle puedo hacer una tabla temporal para despues pasarla ya con todo, o no es una forma normal de hacerlo?. O como lo haces tu. gracias |
#6
|
||||
|
||||
Primero se da de alta el "maestro" y luego los "detalles", no puede ser de otra forma sin son tablas relacionadas.
En todo caso, si termina sin dar de alta ningún "detalle", puedes borrar el "maestro", si quieres. Realmente no se puede dar muchos consejos de un sistema que no se tiene ni idea de lo que hace, ni cómo lo hace, ni lo que quieres hacer en cuanto a su funcionamiento se refiere |
#7
|
||||
|
||||
gracias.
El sistema es simplemente dar de alta una factura por numero de factura, y luego en otra tabla las lineas que contiene esa factura con su precio y demas. Digo yo que es una relacion maestro/detalle normal y si funciona mi problema era, como a cualquiera, el insertar nuevos registros en el maestro y el detalle. Tal y como lo planteas, si es así como debe ser no tengo por que usar una tabla temporal. Estoy en lo correcto a la hora de trabajar con maestro/detalle?. Documentacion de maestro/detalle sobre relacion si hay, inclusive en este foro, pero de insertar nuevos registros no he conseguido nada. Gracias amigo casimiro por arrojarme luz. |
#8
|
||||
|
||||
Una relación maestro->detalle es una relación "uno a muchos". Lo normal es tener un campo por el que están relacionadas ambas tablas.
En el caso de facturas es aconsejable que sea por un campo código que no sea el número de la factura, ¿por qué?, son varios motivos, pero por si se borra una factura, por ejemplo, así no perderíamos el incremento que debe existir entre ellas, las facturas.
Básicamente, a grandes rasgos: Los campos id son autoincrementales. Cada vez que creamos una factura podemos buscar la última y aumentar en 1 su número. Si se cancela, borra, etc. no habría problema con saltos de números. Y como ves, se llaman tablas relacionales porque están relacionadas, es imposible dar de alta un registro en tbLineasFacturas si no existe su correspondiente 'id' en la tabla tbCabecerasFacturas Yo uso 2 querys, uno para la cabecera y otro para el detalle. Si se cambia la cabecera entonces busco los registros en el detalle con el 'id' de la cabecera, simplemente. |
#9
|
||||
|
||||
Se agradece de veras la informacion.
Si me quedo claro la relacion y si me funcionaba con la sconsultas, me quedaba el insertar registros pero lo voy a hacer registrando primero el maestro y luego el detalle. gracias voy a probarlo y os cuento |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Saber si el DBGrid (Detalle) esta Vacio en Relacion Maestro/Detalle | Adrian Murua | Conexión con bases de datos | 2 | 03-01-2009 13:48:46 |
Maestro/Detalle (No graba en tabla Maestro) | teclilla | Tablas planas | 12 | 21-04-2008 20:59:54 |
Problema tabla Maestro-detalle en la q la pk de t.detalle formad por 2cods de la maes | akinom38 | Varios | 1 | 09-11-2007 19:27:44 |
Respecto a la relacion maestro detalle detalle | ilichhernandez | Conexión con bases de datos | 0 | 15-05-2007 18:13:54 |
Maestro-Detalle ;Actualizar detalle a partir de un DBgrid | norberto_larios | Conexión con bases de datos | 1 | 11-09-2004 18:17:34 |
|