Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-03-2017
yuyidt yuyidt is offline
Miembro
NULL
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
Question Modificar registro sin crear uno nuevo

Buenas. se me esta presentado el siguiente problema:
tengo resgistros agregados en la bdd. En un formulario a través de el evento onchange de un edit busco ese registro, por supuesto el id de los registros es incremental,
por ejemplo tengo un registro con el id 19, cuando abro el form me llena de una vez el edit del id con el numero 20,
el asunto es que cuando hago una búsqueda en el edit del los resgistros existentes y voy actualizar dicho registro, al darle guardar, no se me actualiza el registro, sino que me crea otro con el id siguiente al que esta guardado en la tabla. No se que me esta faltando, necesito ayuda por favor.
codigo de onchange del edit:
Código Delphi [-]
procedure TForm5.Edit3Change(Sender: TObject);
begin
with datamodule2.FDQuery3 do
  begin
    close;
        sql.Text:='SELECT * FROM eva_maestro where id_exa=:idex';
        parambyname('idex').AsString:=edit3.Text;
    open;
        edit1.Text:=datamodule2.FDQuery3.FieldByName('nombre_examen').AsString;
  end;
with datamodule2.FDQuery7 do
  begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT eva_maestro.id_exa, eva_detalle.tipo_pregunta, eva_detalle.pregunta,eva_detalle.opcion1,eva_detalle.opcion2,eva_detalle.opcion3,eva_detalle.opcion4  ,eva_detalle.respuesta');
  SQL.Add('FROM eva_maestro, eva_detalle');
  SQL.Add('WHERE eva_maestro.id_exa = eva_detalle.id_exama');
  SQL.Add('AND eva_detalle.id_exama = :idexa');
  ParamByName('idexa').AsString:= edit3.Text;
  Open;
  end;
  Bitbtn3.Enabled:= (Edit3.Text <> '');
end;


Codigo del boton donde guardo los nuevos registros y las actualizaciones:
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,puntos) SELECT '+
                    inttostr(a)+',pregunta,tipo_pregunta,Opcion1,Opcion2,Opcion3,Opcion4,respuesta,puntos FROM eva_estudiantes WHERE ced_est=:cedes';
        ParamByName('cedes').Value:='i';
        ExecSQL;
        close;
        sql.Text:='TRUNCATE eva_estudiantes';
        execsql;
        datamodule2.FDQuery5.close;
        datamodule2.FDQuery5.close;
        limpiar;
      end;
    end;
end;
Ayuda por favor, quisiera modificar es el registro que se me muestra en los edit. cuyo id lo muestra el edit3

Última edición por Neftali [Germán.Estévez] fecha: 28-03-2017 a las 16:48:11. Razón: TAG's delphi
Responder Con Cita
  #2  
Antiguo 28-03-2017
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Buenas.

Para modificar registros se utiliza la sentencia UPDATE.
-
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #3  
Antiguo 28-03-2017
yuyidt yuyidt is offline
Miembro
NULL
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
si utilizo update pero...

Hola, utilizo update dentro del mismo boton que guarda el examen, lo tengo asi:
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,puntos) SELECT '+
                      inttostr(a)+',pregunta,tipo_pregunta,Opcion1,Opcion2,Opcion3,Opcion4,respuesta,puntos FROM eva_estudiantes WHERE ced_est=:cedes';
        ParamByName('cedes').Value:='i';
        ExecSQL;
        close;
        sql.Text:='TRUNCATE eva_estudiantes';
        execsql;
        datamodule2.FDQuery5.close;
        datamodule2.FDQuery5.close;
        limpiar;
      end;
    end;
     begin
        with datamodule2.FDQuery3 do
       begin
       close;
        sql.Text:='SELECT * FROM eva_maestro WHERE id_exa=:idex';
       ParamByName('idex').value:=edit3.Text;
        open;

        if not isempty then
            begin
            sql.Text:='UPDATE eva_maestro SET id_exa=:idex,nombre_examen=:nomex,nota=:not,fecha_ini:fini,fecha_fin=:ffin';
            parambyname('idex').Value:=edit3.Text;
            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;
            datamodule2.FDQuery3.Transaction.Commit;
            ExecSQL;
            Datamodule2.FDQuery3.Transaction.Commit;
            datamodule2.FDQuery3.SQL.Text:='select * from eva_maestro' ;
            end;
       end;
    end;
end;
Pero algo no esta bien porque me sigue creando un registro nuevo, no me modifica. Que le falta al código? o será que tengo algo que no debe ir?

Última edición por Neftali [Germán.Estévez] fecha: 28-03-2017 a las 16:47:55. Razón: Utilizar TAG's adecuadas
Responder Con Cita
  #4  
Antiguo 28-03-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Para código Delphi, utilizad las etiquetas adecuadas.
Gracias.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 28-03-2017
yuyidt yuyidt is offline
Miembro
NULL
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
disculpa neftali

pero no se como hacerlo
Responder Con Cita
  #6  
Antiguo 28-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
Cita:
Empezado por yuyidt Ver Mensaje
pero no se como hacerlo
Hola.

Como usar las etiquetas:



Saludos
__________________
Daniel Didriksen

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



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
Modificar Registro agustin173 Varios 18 07-01-2015 21:05:20
Modificar registro de una tabla alcides SQL 7 09-11-2010 20:06:13
Modificar registro con Query Alexandro SQL 10 02-09-2008 20:37:09
Modificar registro Elite237 OOP 4 03-08-2007 04:27:21
modificar olo un registro Irina SQL 1 26-05-2003 13:41:59


La franja horaria es GMT +2. Ahora son las 00:45:53.


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