Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-03-2017
yuyidt yuyidt is offline
Miembro
NULL
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
Question modificar tablas maestro_detalle

Hola buenas tardes. Presento el siguiente caso, espero me puedan ayudar.

Tengo una tabla maestro (eva_maestro), tabla detalle (eva_detalle) y una tabla temporal (eva_estudiantes)

1. En la tabla eva_maestro se guarda información referente a una evaluación (id_exa,nombre_examen,nota,fecha_inicio y fecha_final)
2. En la tabla eva_detalle se guardan las preguntas de la evaluación(id(de la pregunta),id_exama(campo que se relaciona con id_exa de eva_maestro),tipo_pregunta,pregunta,opcion1,opcion2,opcion3,opcion4,respuesta y puntos(de la pregunta)
3. En la tabla temporal se van guardando las preguntas mientras el examen aún no se guarda, una vez guardado el examen se vacía esta tabla y pasan los datos correspondientes a eva_maestro y eva_detalle(id(de la pregunta),ced_est,tipo_pregunta,pregunta,opcion1,opcion2,opcion3,opcion4,respuesta, y puntos)

//Lo que aparece en negrita son los campos de las tablas

Eso me lo guarda bien, el asunto esta que no se como hacer si quiero modificar ese examen, quizá cambiarle el nombre, las fechas, agregar o eliminar preguntas, etc.

En el formulario tengo un edit que es donde escribo el id del examen, en el evento onchange lo puse para que al escribir en el edit me aparezca automáticamente el examen si existe, si existe entonce me llena los edit del nombre, la nota, y las fechas de inicio y fin.

Codigo del boton guardar:

Código Delphi [-]
procedure TForm5.BitBtn1Click(Sender: TObject);
var
  a:integer;
  begin
    with datamodule2.FDQuery6 do
    begin
      close;
      sql.Text:='SELECT ced_est FROM eva_estudiantes WHERE ced_est=:cedes';
      ParamByName('cedes').Value:='i';
      open;
      begin
        close;
        sql.Text:='INSERT INTO eva_maestro (nombre_examen,fecha_ini,fecha_fin,nota) VALUES (:nomex,:feini,:fefin,:not)';
        ParamByName('nomex').Value:=edit1.Text;
        ParamByName('feini').value:=formatdatetime('YYYY-MM-DD',DateTimePicker1.Date);
        ParamByName('fefin').value:=formatdatetime('YYYY-MM-DD',DateTimePicker2.Date);
        Parambyname('not').Value:=combobox2.Text;
        ExecSQL;
        close;
        sql.Text:='SELECT max(id_exa) as ultimo FROM eva_maestro';
        open;
        a:=FieldByName('ultimo').AsInteger;
        close;
        sql.Text:='INSERT INTO eva_detalle (id_exama,pregunta,tipo_pregunta,Opcion1,Opcion2,Opcion3,Opcion4,respuesta) SELECT '+inttostr(a)+',pregunta,tipo_pregunta,Opcion1,Opcion2,Opcion3,Opcion4,respuesta FROM eva_estudiantes WHERE ced_est=:cedes';
        ParamByName('cedes').Value:='i';
        ExecSQL;
        close;
        sql.Text:='TRUNCATE eva_estudiantes';
        execsql;
      end;
    end;
end;

Que debería agregar para que me modifique el registro si existe?

En el botón eliminar, que debería agregar también para que me elimine el examen con sus respectivas preguntas?

Gracias de antemano

Última edición por Casimiro Notevi fecha: 23-03-2017 a las 23:05:50.
Responder Con Cita
  #2  
Antiguo 24-03-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por yuyidt Ver Mensaje
...
Que debería agregar para que me modifique el registro si existe?
...
Basándome en el código de tu mensaje, para modificar un registro haría algo similar a esto:
Código Delphi [-]
procedure TForm5.BitBtn1Click(Sender: TObject);
begin
  with DataModule2.FDQuery6 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('UPDATE EVA_MAESTRO');
    SQL.Add('SET NOMBRE_EXAMEN = :NOMBRE_EXAMEN, FECHA_INI = :FECHA_INI,');
    SQL.Add('FECHA_FIN = :FECHA_FIN, NOTA = :NOTA');
    SQL.Add('WHERE CED_EST = :CED_EST');
    ParamByName('NOMBRE_EXAMEN').AsString := Edit1.Text;
    ParamByName('FECHA_INI').AsDate       := DateTimePicker1.Date;
    ParamByName('FECHA_FIN').AsDate       := DateTimePicker2.Date;
    ParamByName('NOTA').AsString          := ComboBox2.Text;
    ParamByName('CED_EST').AsString       := 'i';  // ¿ Codigo único / ID ?
    ExecSQL;
    ...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema al modificar tablas en SQL 2000 kurono MS SQL Server 2 07-03-2013 10:07:53
modificar tablas en SQL agustin173 Varios 4 13-12-2010 22:33:50
Modificar Tablas desde Codigo BlueSteel Firebird e Interbase 20 23-11-2007 20:12:58
Modificar Tablas hechas en DBF Iris04 Conexión con bases de datos 1 10-06-2005 00:06:56
Modificar tablas vinculadas de Access castelaogz Conexión con bases de datos 2 25-03-2004 13:12:19


La franja horaria es GMT +2. Ahora son las 17:39:29.


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
Copyright 1996-2007 Club Delphi