Altas de registros en dos tablas relacionadas


([N1] psruza) #1

Como puedo hacer para dar de alta un registro en dos tablas a la vez. Lo he intentado con un triggers, pero no consigo que me haga el alta en la segunda tabla.El codigo que he utilizado es el siguiente

crear nueva ficha en memoria(nota, alumnos@nuevo)
modificar campo (foto, #foto)
modificar campo (name, #name)
alta de ficha(nota)

espero me podais dar algo de luz y decirme donde me estoy equivocando.

gracias de antemano


([N3] ereitmann) #2

Tal vez podrías hacerlo con un tiggers posterior al alta de ficha y utilizando un tubo de ficha alimentado por variables locales o variables globales en ese tigger debería funcionar, y también el procedimiento que tu defines pero tal vez te falta previamente asignar a variables locales los valores de la ficha creada previamente y alimentar los valores de la ficha a crear con las variables


([N2] AyudaVelneo) #3

Hola psruza:

Primero… ¿qué es lo que quieres hacer?. Se que quieres dar de alta en dos tablas a la vez… pero ¿en qué circunstancias? ¿desde donde?

Explica un poco mas el proceso y te podremos ayudar.

Un saludo


([N1] psruza) #4

Son dos tablas (Alumnos y Notas), las cuales tienen una relación plural.
Quiero que cuando en la tabla de Alumnos se de un “Alta” ó una “Modificación” de un registro en la tabla de Notas realice los mismos cambios, ya sea en un “Alta” o en una “Modificación”.Y quiero hacerlo desde la tabla de Alumnos, por eso decia de utilizar un triggers desde esta tabla, el triggers que he utilizado es el que relaciono anteriormente, pero no me da el resultado que yo esperaba, es mas no crea ni el registro en la tabla de Notas. Espero me podais orientar que es lo que hago mal y si hay una forma mas sencilla de ejecutar lo que ando buscando.


([N2] AyudaVelneo) #5

Hola:

La pregunta es ¿para qué quieres tener en la tabla notas los campos foto y nombre del alumno? Si ya los tienes en la tabla alumnos. Desde la tabla notas podrás acceder a ellos a través del campo maestro “alumno.name” y “alumno.foto”.

Si aún así quieres seguir grabando los datos, la forma en la que lo estabas haciendo es la correcta, lo único que (en tu ejemplo) la tabla no sería alumnos sino notas.

Un saludo


([N3] pacosatu) #6

Hola psruza.

Yo tampoco entiendo lo que quieres hacer.
¿Qué campos tiene cada tabla?¿Qué intentas hacer en el trigger?
No tiene sentido duplicar los campos en las 2 tablas si ambas están relacionadas, a no ser que hayas desnormalizado la relación. La duplicación de campos te obliga a diseñar un sistema de sincronización que tienes que mantener manualmente mediante triggers. Velneo, tal como te indica Francisco Vila, te proporciona una relación permanente Alumnos-Notas a través del puntero Alumnos en la tabla Notas.

En cualquier caso, la utilización que haces del comando “Modificar campo” es incorrecta. Si pones “Modificar campo(name, #name)” estás asignando al campo name su mismo valor (#name), es decir, creo que no haces nada con eso.

Saludos
Paco Satué