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

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 26-01-2023
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 23
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Veo que borras el registro de la tabla y luego haces un Next en el bucle. Creo que así te saltarás registros de la taba.
Te recomiendo hacer una lista de los ficheros a borrar y tratarlos a todos de la misma manera (if FileExists().. if DeleteFile())
También te recomiendo utilizar while not EOF para evitar errores cuando refrescas datos en el bucle (borrar registros) y la cantidad varía.
Además de esto. Pon el nombre del fichero en el mensaje de error. Puede que veas que sale vacío o con cosas raras y te des cuenta de algún error en el algoritmo.


Código Delphi [-]
  ListaFicheros := TStringList.Create;
  try
    while not FDQuery.EOF do
    begin
      ListaFicheros.Clear;
      ListaFicheros.Add(FDQueryParametrosPAEXINGRESOSXML.Value+'\'+FDQuery.FieldByName('NOMBRE_ARCHIVO').V  alue+'.XML');
      ListaFicheros.Add(FDQueryParametrosPAEXINGRESOSPDF.Value+'\'+FDQuery.FieldByName('NOMBRE_ARCHIVO').V  alue+'.PDF');
      
      TodoBorrado := True;
      // Recorro en forma inversa porque ire borrando los registros tratados
      for i := ListaFicheros.Count -1 downto 0 do
      begin
        if not FileExists(ListaFicheros[i]) then    
          ListaFicheros.Delete(i)
        else
        begin
          if DeleteFile(ListaFicheros[i])  then 
            ListaFicheros.Delete(i)
          else
          begin 
            TodoBorrado := False;
            showMessage('Hubo un error al eliminar el archivo PDF' + ListaFicheros[i] + #13#10 + 'Favor de Eliminar Manualmente.');
          end;
        end;
      end;
      
      // Si pude borrar todos los ficheros borro el registro de la tabla
      if TodoBorrado then
        DModuloEmpresa.FDQuery.Delete
      else
      begin
        // En este punto, dentro de ListaFicheros, tienes los ficheros que no se han podido borrar
        FDQuery.Next;
      end;
    end;
  finally
    ListaFicheros.Free;
  end;
Responder Con Cita
 


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
Cuál es la Mejor forma de Eliminar Conexiones Clientes de un Server Indy R_Richards Internet 4 22-07-2010 15:11:09
Cual es la mejor forma de conectar con la BD GerTorresM Conexión con bases de datos 1 11-01-2010 16:51:47
Cual es la Mejor forma de Agregar,Modificar y Eliminar en ADO ? LENOCB Varios 50 07-01-2008 04:04:47
Eliminar Codigo Cual es la mejor Forma ? sierraja Varios 1 12-04-2007 00:41:00
cual es la mejor forma ? martita Varios 14 07-07-2005 19:35:55


La franja horaria es GMT +2. Ahora son las 18:35:41.


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