Club Delphi  
    Paypal   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

Coloboración Paypal con 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
disculpa neftali

pero no se como hacerlo
Responder Con Cita
  #2  
Antiguo 28-03-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
  #3  
Antiguo 28-03-2017
yuyidt yuyidt is offline
Miembro
NULL
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
Smile

Gracias ecfisa. Siempre tan amable
Responder Con Cita
  #4  
Antiguo 28-03-2017
yuyidt yuyidt is offline
Miembro
NULL
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
si me pueden ayudar con esto por favor

utilizo update para modificar registros pero me sigue apareciendo uno nuevo, ayuda por favor

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?
Responder Con Cita
  #5  
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: 19.441
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
Con este código que tienes siempre va a pasar por el INSERT.
Haces una búsqueda con un SELECT, realizas el Open, luego cierras y luego haces un INSERT.
Siempre va a pasar por ahí.

Código Delphi [-]
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;

Tal vez no acabo de entender muy bien lo que quieres hacer.
Lo lógico tal vez sería hacer el SELECT y después de hacer el Open, preguntar si lo ha encontrado o no para hacer un INSERT o un UPDATE.
Algo así:

Código Delphi [-]
  FDQuery6.sql.text :='SELECT * ...'
  FDQuery6.Open;
  // No ha encontrado ninguno?
  if (FDQuery6.isEmpty) then begin
    // Aqui hago el INSERTY
    ....
  end
  else begin
    // Si llega aquí, es que lo ha encontrado, por lo tanto hago el UPDATE
    ...
  end;

  ...
__________________
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
  #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: 38
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 yuyidt.

Es que la modificación de un registro debería ser simplemente algo similar a esto,
Código Delphi [-]
...
begin
  with datamodule2  do
  begin
    // Preparar la consulta de actualización
    FDQuery3.Close;
    FDQuery3.SQL.Clear;
    FDQuery3.SQL.Add('UPDATE EVA_MAESTRO SET NOMBRE_EXAMEN = :NOMEX,');
    FDQuery3.SQL.Add('NOTA = :NOT, FECHA_INI = :FINI, FECHA_FIN = :FFIN');
    FDQuery3.SQL.Add('WHERE ID_EXA = :IDEX');

    // Asignar valores a los parámetros
    ParamByName('NOMEX').AsString := Edit1.Text;
    Parambyname('NOT').AsString   := ComboBox2.Text;
    ParamByName('FINI').AsDate    := DateTimePicker1.Date;
    ParamByName('FFIN').AsDate    := DateTimePicker2.Date;
    ParamByName('IDEX').AsString  := Edit3.Text;  // clave única o campo ID
   
    // Ejecutar la consulta
    FDQuery3.ExecSQL;
  end;
end;
y no ejecutar una inserción previamente...

Saludos

edito: ( Mientras escribía este, Neftalí ya te había indicado lo mismo )
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 28-03-2017 a las 20:19:04.
Responder Con Cita
  #7  
Antiguo 28-03-2017
yuyidt yuyidt is offline
Miembro
NULL
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
Ok, no se si me explique bien,
el query6 esta conectado a la tabla temporal que es donde se van guardando las preguntas mientras no he guardado el examen.
query3 esta conectado con la tabla eva_maestro.
Si busco un examen y existe, quiero poder agregar mas preguntas a dicho examen, (recordando que estas preguntas se van guardando en tabla temporal, así que para el update creo que necesitare ambos querys - el 3 y el 6)
pero no se como implementar el uso de los 2 query.
Por ejemplo,
en fdquery3 busco el examen y si existe entonces agrego mas preguntas(las cuales se van agregando a tabla de fdquery6)
cuando voy a guardar el examen, necesito saber si la tabla temporal(fdquery6), tiene registros, si es así entonces:
- actualizo el examen
- y envío los registros de tabla temporal a eva_detalle(que es donde están todas las preguntas)
Responder Con Cita
  #8  
Antiguo 28-03-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Ví las definiciones de tablas en este hilo: modificar tablas maestro_detalle.

Pero no logro entender la lógica con que estas implementando la relación master-detail. Es decir, si ya completaste los datos referentes a la evaluación (maestro), sólo deberías ir agregando los datos de las preguntas en la tabla detalle con su campo de relación (ID_EXAMA) apuntando a la evaluación correspondiente.

Si tu problema es que todavía no has guardado la fila en la tabla EVA_MAESTRO y por tanto no tienes su ID, en estos enlaces se habla del tema :De no encontrar una solución en los enlaces anteriores, especifica con mas detalle la lógica de la relación y el gestor de base de datos con que estas trabajando.

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
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 23:59:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi