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)
-   -   Copiar solo un registro de una tabla a otra (https://www.clubdelphi.com/foros/showthread.php?t=85031)

NISOTO 15-01-2014 21:31:38

Copiar solo un registro de una tabla a otra
 
Hola a todos,
Tengo 2 tablas en Firebird 2.5 y Delphi 2007.

1. Alumnos
COD_ALUMNO*
SALON
NOMBRES
APELLIDOS

2. Matricula
AULA*
ESTUDIANTE*
NOMBRES
APELLIDOS

Necesito copiar el registro que yo seleccione de la tabla “Alumnos” a la tabla “Matriculas”, el inconveniente es que el código que tengo por el momento me copia todos los registros.

Código Delphi [-]
procedure TFormmatriculas.btnMatricularClick(Sender: TObject);
  begin
     DMMatriculas.ibqry_Calificacion.Close;
     DMMatriculas.ibqry_Calificacion.Sql.Clear;
     DMMatriculas.ibqry_Calificacion.Sql.Add('INSERT INTO Matricula (ESTUDIANTE, AULA, NOMBRES, APELLIDOS)');
     DMMatriculas.ibqry_Calificacion.Sql.Add('SELECT ID_ALUMNO, SALON, NOMBRES, APELLIDOS SALON FROM alumnos');
     DMMatriculas.ibqry_Calificacion.Open;
  end;
Si alguien me puede ayudar se lo agradecería.

TiammatMX 15-01-2014 21:42:39

Cita:

Empezado por NISOTO (Mensaje 471766)
...
Si alguien me puede ayudar se lo agradecería...

Solamente en tu SELECT para inserción deberás "centrar" el registro que deseas se inserte en la otra tabla, es decir, ponerle una instrucción WHERE con las condiciones necesarias para que te devuelva un registro único. Servido.

NISOTO 15-01-2014 21:52:46

Gracias,
Lo que sucede es que la tabla matricula no tiene ningun registro.

ecfisa 15-01-2014 22:16:34

Cita:

Empezado por NISOTO (Mensaje 471769)
Gracias,
Lo que sucede es que la tabla matricula no tiene ningun registro.

Hola NISOTO.

tiammat se refiere a que impongas la condición sobre la tabla "ALUMNOS", algo parecido a:
Código SQL [-]
INSERT INTO MATRICULA(ESTUDIANTE, AULA, NOMBRES, APELLIDOS)
SELECT A.ID_ALUMNO, A.SALON, A.NOMBRES, A.APELLIDOS FROM ALUMNOS A
WHERE A.ID_ALUMNO = :CURRENT_ID

Saludos :)

TiammatMX 15-01-2014 23:00:25

Cita:

Empezado por ecfisa (Mensaje 471771)
Hola NISOTO.

tiammat se refiere a que impongas la condición sobre la tabla "ALUMNOS", algo parecido a:
Código SQL [-]
INSERT INTO MATRICULA(ESTUDIANTE, AULA, NOMBRES, APELLIDOS)
SELECT A.ID_ALUMNO, A.SALON, A.NOMBRES, A.APELLIDOS FROM ALUMNOS A
WHERE A.ID_ALUMNO = :CURRENT_ID

Saludos :)

Mejor explicado, ni Zarko Gajic... ;)

NISOTO 16-01-2014 02:48:05

Ok, funciona de maravilla.

Muchas gracias a clubdelphi...

ecfisa 16-01-2014 08:31:00

Cita:

Empezado por tiammat (Mensaje 471774)
Mejor explicado, ni Zarko Gajic... ;)

¡ Vaya exageración ! :o

Saludos :)


La franja horaria es GMT +2. Ahora son las 20:07:06.

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