Ir al contenido


Foto

Update con dos tablas


  • Por favor identifícate para responder
3 respuestas en este tema

#1 nilsemsolano

nilsemsolano

    Member

  • Miembros
  • PipPip
  • 14 mensajes

Escrito 17 noviembre 2013 - 06:15

Hola a todos,

Tengo en un DbGrid con la tabla “Salones” y necesito actualizar la tabla “Calificaciones” con los campos de la tabla “salones” con la condición de que el Id_salón = Id_salón_cal.
Esto lo hago seleccionando un salón del DbGrid y pulsando un Botón que se llama cargar.
Estoy trabajado en Delphi 2007 y Firebird 2.5

Salones

Id_salon (*)
Materia
Area
Docente
IHS

Calificaciones

Id_Salón_cal (*)
Materia_cal
Area_cal
Docente_cal
IHS_cal

El problema es que tengo por el momento un código pero no me está funcionando, por favor si no es mucha molestia y me dan un poco la mano, yo sé un poco de tablas planas pero estoy empezando en SQL.

Código Delphi [-]



delphi
  1. procedure TFormCarga.btn1Click(Sender: TObject);
  2.   begin
  3.     DMCarga.ibqry_Calificacion.Close;
  4.     DMCarga.ibqry_Calificacion.Sql.Clear;
  5.     DMCarga.ibqry_Calificacion.Sql.Add('UPDATE calificacion');
  6.     DMCarga.ibqry_Calificacion.Sql.Add('SET = (SELECT materia FROM salones WHERE   
  7.     materia = materia_cal)');
  8.     DMCarga.ibqry_Calificacion.Sql.Add('WHERE id_salon = id_salon_cal');
  9.     DMCarga.ibqry_Calificacion.Open;
  10.   end;




Y por favor me pueden responder si es mejor trabajar con TIBDataSet o TIBQuery.
  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 17 noviembre 2013 - 11:34

Bienvenido a DelphiAccess amigo nilsemsolano (y)

Yo te recomendaría que primero obtuvieras el valor de la materia mediante la consulta:


delphi
  1. SELECT materia FROM salones WHERE   
  2.     materia = materia_cal



... y colocarlo en una varible y después ejecutar el UPDATE...

Saludox y esperamos verte por aquí con frecuencia :)


  • 0

#3 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 18 noviembre 2013 - 03:14

Donde pone "SET =" deberia ser "SET CAMPO =" para que tenga sentido.
  • 0

#4 nilsemsolano

nilsemsolano

    Member

  • Miembros
  • PipPip
  • 14 mensajes

Escrito 18 noviembre 2013 - 11:17

Gracias Sergio

Funciona de maravillas, este foro es lo que buscaba.
  • 0




IP.Board spam blocked by CleanTalk.