Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Grabar registros en 2 tablas al mismo tiempo (https://www.clubdelphi.com/foros/showthread.php?t=78484)

NISOTO 24-04-2012 06:48:15

Grabar registros en 2 tablas al mismo tiempo
 
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.

Código SQL [-]
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"


La franja horaria es GMT +2. Ahora son las 15:41:32.

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