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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-03-2007
sanfer1ec sanfer1ec is offline
Miembro
 
Registrado: nov 2006
Ubicación: Quito-Ecuador
Posts: 24
Poder: 0
sanfer1ec Va por buen camino
Delphi genera archivos involuntariamente DEL#.MB

Estimados

Tengo una pregunta antes que un inconveniente, mi aplicacion delphi tengo por ejemplo dentro de una folder c:\desarrollo\aplicacionv1, y dentro de estas estan todas las formas y todos los archivos de delphi incluido el exe, pero al momento que ejecuto en el mismo directorio aparecen archivos con el siguiente formado Del#.MB, en donde # es un número secuencial que me ha llegado hasta el 30 y no se borran despues de cerrar la aplicación.

ahora que genere ya los instaladores dejo un acceso directo en el escritorio de la PC y resulta que ahi tambien me genera estos archivos y se llena el escritorio de la PC.

Si alguien me puede ayudar por favor, gracias.
Adjunto los archivos en un Zip para que lo puedan ver.
Archivos Adjuntos
Tipo de Archivo: zip files innecesarios.zip (29,0 KB, 27 visitas)

Última edición por sanfer1ec fecha: 20-03-2007 a las 01:55:34.
Responder Con Cita
  #2  
Antiguo 20-03-2007
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Según recuerdo esos archivos se crean si trabajas con un Cache, cuando inicias una sesión en la base de datos se crea un archivo temporal por cada tabla que usas con actualizaciones en cache, si cierras correctamente la sesión el archivo temporal se elimina. Si en tu caso no se eliminan los archivos temporales es posible que la sesión no se ha cerrado adecuadamente.

Por otra parte cuando creas un acceso directo a tu aplicación, debes indicarle cuál es el directorio de trabajo para que los archivos temporales se guarden en esa carpeta y no en el escritorio.

Saludos.
Responder Con Cita
  #3  
Antiguo 21-03-2007
sanfer1ec sanfer1ec is offline
Miembro
 
Registrado: nov 2006
Ubicación: Quito-Ecuador
Posts: 24
Poder: 0
sanfer1ec Va por buen camino
Gracias por tu respuesta

Y tienes razon uso el cache en las tablas de la BD, pero una pregunta, a que te refieres con cerrar la sesion correctamente, lo que lo que yo estoy haciendo es cerrando la aplicacion con
Código Delphi [-]
Application.Terminate.
Responder Con Cita
  #4  
Antiguo 21-03-2007
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Disculpa me exprese mal, lo que en realidad queria decir es que debes utilizar los métodos ApplyUpdates o CommitUpdates adecuadamente en la base de datos y así mismo los métodos Commit y RollBack para asegurarte que no dejas ninguna actualización pendiente en el cache antes de cerrar tu aplicación.

En la ayuda de Delphi vienen algunos ejemplos acerca del manejo de estas instrucciones.

Saludos
Responder Con Cita
  #5  
Antiguo 22-03-2007
sanfer1ec sanfer1ec is offline
Miembro
 
Registrado: nov 2006
Ubicación: Quito-Ecuador
Posts: 24
Poder: 0
sanfer1ec Va por buen camino
Gracias por tu pronta respuesta

Pienso que lo estoy manejando bien, por ejemplo yo pongo las siguientes instrucciones:

Código Delphi [-]
dm.DB.StartTransaction;
  try
    dm.t_cliente.ApplyUpdates;
    dm.DB.Commit;
    dm.t_cliente.CommitUpdates;
    Bbt_sucursal.Enabled:=True;
    frm_main.status_barra(1);
    except
    on E: Exception do
      begin
      dm.DB.Rollback;
      frm_main.status_barra(2);
      frm_main.Muestra_excep(E.Message,E.InstanceSize,'FRM_CLIENTE');
      end;
    end;

Y con eso eso visto que aparecen y desaparecen archivos, pero algunos no han desaparecido y se quedan ahi en la carpeta en la que se estan ejecutando, por eso era mi inquietud si he podría borrar de alguna manera al cerrar la aplicación, y no se si eso además es factor para que despues de compilar algunas veces me muestra un mensaje en el que dice que no hay suficinete memoria y lo que me toca hacer es reiniciar la PC y comenzar de nuevo, si me puedes ayudar con esto tambien sería genial.
Te agradezco mucho.
Responder Con Cita
  #6  
Antiguo 22-03-2007
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Vamos a suponer que algo falla justo en la línea que hace dm.DB.Commit;, entonces las líneas posteriores no se ejecutarán y saltará a la sección de except, luego entonces aunque se ejecuta el RollBack no llegas nunca al CommitUpdates que es quien se encarga de limpiar el cache, por lo tanto el archivo temporal no se eliminará.

Espero que sea de utilidad, hace mucho que no uso tablas con actualizaciones en cache

Saludos
Responder Con Cita
  #7  
Antiguo 30-03-2007
sanfer1ec sanfer1ec is offline
Miembro
 
Registrado: nov 2006
Ubicación: Quito-Ecuador
Posts: 24
Poder: 0
sanfer1ec Va por buen camino
Tienes toda la razon, estoy manejando excepciones, y justamente en un momento determinado controlo esta excepción si no sucede algo y se me pasa sin realizar el commit, estoy teniendo el problema de que si cambio de lugar al commit, en cambio si no sucede la excepción me dar error.

Voy a intentar cambiar de lugar y alternar entre varias alternativas para ver si se soluciona,

Gracias
Responder Con Cita
  #8  
Antiguo 14-02-2008
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Unhappy

Lograste solucionar el problema? A mi me pasa algo parecido pero no logro averiguar la solucion. Os explico:

La aplicacion esta en un servidor y en los equipos clientes hay un acceso directo a esta. El problema es que al imprimir los listados es necesario realizar una consulta para obtener la informacion a listar y esto genera unas tablas temporales, 2 exactamente, y se generan en el escritorio. Al finalizar la impresion del listado una de las tablas se elimina pero la otra se queda en el escritorio y si se intenta eliminar no lo permite da un mensaje diciendo que esta siendo utilizada por otro programa.

He comprobado si cierro bien la consulta y lo hago bien intendo hacer un Query.Delete y un Destroy no da resultado.

He pensado que pueda ser algo de permisos entre el servidor y los clientes pero hay ya varias aplicaciones montadas de esta misma forma y no me dan este problema.

Un saludo!
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
Archivos .dat LucianoRey Varios 5 02-11-2020 12:08:22
No se generan los archivos .dcu rochi Varios 6 16-09-2011 20:45:02
"enditall" finalizar aplicacs y procesos innecesarios para por ejemplo...editar video images API de Windows 7 20-09-2004 10:55:14
Archivos INI Isaac Varios 10 26-02-2004 15:37:51


La franja horaria es GMT +2. Ahora son las 01:05:05.


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