Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas para actualizar datos (https://www.clubdelphi.com/foros/showthread.php?t=29399)

Nelly 20-01-2006 18:43:34

Problemas para actualizar datos
 
Buen dia a todos.....

Hola, tengo un problema a la hora de guardar datos actualizados. Pasa que tengo una ventana en la cual doy de alta a las personas, pero esa información que guardo en la BD lo hago dos veces, osea una misma persona la guardo dos veces, pero con diferente numero de evento para diferenciarlas. La cuestión ahora es, que cuento con un campo en la tabla que se llama registrado(que por default maneja 'F', en la BD), y este campo es lo que quiero actualizar a (T), pero esta actualización debe hacerce en los dos numeros de evento,por ejemplo 3 y 4 ambos tienen que tener 'T'. Este codigo es el que utilizo, pero solo logra actualizar un numero de evento y el otro lo conserva con 'F'.
Código Delphi [-]
//codigo para registrar
  if QryListaAcredit.IsEmpty then exit; //en esta tabla tengo el campo registrado
   qryTemp.Active:=false;
   qryTemp.SQL.Clear;
   qryTemp.SQL.Add('Update Acreditados set registrado=''T'', ');
   qryTemp.SQL.Add('fechregistrado=''TODAY'' ');
   qryTemp.SQL.Add('where clave=:clave and cve_evento=:cve_evento');
   qryTemp.ParamByName('clave').AsString:=QryListaAcredit.fieldbyname('clave').AsString;
   qryTemp.ParamByName('cve_evento').AsInteger:=cve_evento;
   if (even_distrital1>0) and (num_evento1>0) then begin;  //estas variables son las que utilizo para insertar los numeros del evento
     distritofederal:=QryListaAcredit.fieldbyname('distritofederal').AsInteger;//disfed en este campo se guarda el numero de evento
     if (disfed=3) or (disfed=4) then begin
        qryTemp.SQL.Clear;
        qryTemp.SQL.Add('Update Acreditados set registrado=''T'', ');
        qryTemp.SQL.Add('fechregistrado=''TODAY'' ');
        qryTemp.SQL.Add('where clave=:clave and cve_evento=:cve_evento');
        qryTemp.ParamByName('clave').AsString:=QryListaAcredit.FieldByName('clave').AsString;
        qryTemp.ParamByName('cve_evento').AsInteger:=cve_evento;
          end;
   end;
   qryTemp.ExecSQL;


Espero puedan ayudarme, Gracias por su tiempo.

Nelly 20-01-2006 22:32:08

se que son varios, los que mandan sus preguntas, pero por favor tambien, revisen mi pregunta. Gracias

Lepe 20-11-2006 14:07:44

antes del "if (even_distrital1>0)" deberías llamar a qryTemp.ExecSql.


Según veo, la clave es la misma, lo que cambia es el cve_evento, podrías plantearte otra sql, del tipo:
Código SQL [-]
where clave = 'clave1'  and cve_evento in (3, 4) ;

Así usas una sola ejecución de la consulta, pero afecta a los dos registros al mismo tiempo.

Saludos


La franja horaria es GMT +2. Ahora son las 00:57:40.

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