PDA

Ver la Versión Completa : Grabar registros en 2 tablas al mismo tiempo


NISOTO
24-04-2012, 06:48:15
Hola a todos,

Tengo un inconveniente que no se como solucionar, tengo 2 tablas en Interbase y Delphi 2007, el * representa el índice de las tablas.
Los campos de ambas tablas son iguales.

Matricula:
CodMatricula*
CódEstudiante
CodCurso

Calificación:
CodCalifica*
CodEstudiante
CodCurso

Tengo un Form llamado Matricular Estudiante, con un DbGrig, un DbNavigator y con los campos de la tabla Matricula.
Cuando hago clic en Guardar quiero que también me guarde los datos en la tabla Calificación.

Como puedo realizar esto. Por favor alguien puede ayudarme.

duilioisola
24-04-2012, 09:07:38
Creo que lo mas facil es con un trigger en la tabla matricula.
De este modo sería interno a la base de datos y no tendrás que preocuparte de la parte delphi.


create trigger matricula_bi0 for matricula active before insert position 0
as
declare variable codclasifica integer;
begin
/*
¿Que debe contener el campo codclasifica?
Lo creo con un 0, pero podría también buscar max()+1
*/
codclasifica = 0;

insert into clasificacion
(codclasifica, codestudiante, codcurso)
values
(:codclasifica, new.codestudiante, new.codcurso);
end


Quizás debas hacer otros triggers "before update" y "before delete"