Ver Mensaje Individual
  #1  
Antiguo 10-02-2009
Garfio Garfio is offline
Miembro
 
Registrado: jul 2006
Posts: 15
Reputación: 0
Garfio Va por buen camino
Thumbs up SQL no actualiza los datos

Tengo el siguiente programa en Delphi 7 con Interbase 6. Uso los componentes de base de datos de interbase. El código es:
Código Delphi [-]
       DMRepara.QrPre.Close;
       DMRepara.QrPre.UnPrepare;
       DMRepara.QrPre.ParamByName('ENTRE').asstring := DMRepara.QrCab.FieldbyName('numPreaviso').asstring;
       DMRepara.QrPre.Prepare;
       DMRepara.QrPre.Open;
       DMRepara.QrPre.First;
       while not DMRepara.QrPre.Eof do
       Begin
         if DMRepara.QRPre.FieldByName('numEntre').AsString =
            DMRepara.QRCab.FieldByName('numEntre').AsString then
         Begin
           DMRepara.QrUCab.Close;
           DMRepara.QrUCab.UnPrepare;
           DMRepara.QrUCab.ParamByName('IDMEN').asinteger := DMRepara.QrPre.FieldbyName('idMensaje').asinteger;
           DMRepara.QrUCab.Prepare;
           DMRepara.QrUCab.Open;
           DMRepara.QrUCab.Edit;
           DMRepara.QrUCab.FieldByName('procesado').AsString := '1';
           DMRepara.QrUCab.Post;
         end;
         DMRepara.QrPre.Next;
       end;
       DMRepara.QRPre.Active := False;
       DMRepara.QrCab.Next;
    end;
   end;
   DMRepara.QrUCab.ApplyUpdates;
   DMRepara.TRPuerto.Commit;
   DMRepara.QrEntr.Close;
   DMRepara.QrPre.Close;
   DMRepara.QRCab.Close;
   DMRepara.QrUCab.Close;

y el SQL que tengo para QrUCab es:
Para el Select
Código SQL [-]
select * from "Cabeceras"
where
  "idMensaje" = :IDMEN
y para el Update
Código SQL [-]
update "Cabeceras"
set
  "Cabeceras"."procesado" = :"procesado"
where
  "Cabeceras"."idMensaje" = :"OLD_idMensaje"
el caso es que no me actualiza el campo procesado a '1'. Lo he probado asignando directamente el valor y tampoco me lo actualiza. Los componentes son TIBQuery y TIBUpdateSQL aunque tambien lo he probado con TIBDataSet y tampoco funciona.
He probado según algunos ejemplos que he visto en el foro y tampoco. Ahora lo tengo con CachedUpdates = True pero tambien lo he probado sin.
La cuestión es que me pasa por todas las sentencias que ha de pasar y no me da error, pero no me actualiza el campo.
Sinceramente, ya no se que hacer. Agradecería cualquier ayuda posible. Gracias.
Responder Con Cita