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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-10-2006
vicvil vicvil is offline
Miembro
 
Registrado: may 2003
Ubicación: Chile
Posts: 157
Poder: 22
vicvil Va por buen camino
Pensando que podia ser por memoria, comence a abrir, modificar la tabla, cerrar y liberar con free eso para hacer la prueba, ya que como dice Sick Boy no es necesario hacerlo sino hasta el final, pero lo hice para probar. Pero aun asi sigue con el problema.
Las tablas que se actualizan con el programa pueden ser cientos, eso va a depender de la cantidad de información que tenga el usuario.
Con respecto a la ruta, eso está bien definida, yo he ruteado el programa y pasa por las tablas que debería actualizar pero no lo hace, es mas puede actualizar la tabla inmediatamente anterior dentro de la misma carpeta pero la proxima ya no lo hace. Y como dije anteriormente no envia ningun mensaje de error.
Responder Con Cita
  #2  
Antiguo 23-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.114
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo iba a responder lo mismo que Lepe:

Cita:
Empezado por Lepe
Si se ejecuta y no obtienes errores, es que no hay nada que actualizar. Ya, parece una "respuesta rápida", pero no es así.
Es que si no hay nada que actualizar las consultas de actualización se ejecutan en la aplicación, pero, el gestor de la base de datos no llega a ejecutarlas: porque averigua que no hay nada que actualizar.

No sé si ocurre en Paradox: desde luego en MySQL sí que ocurre así.

Yo iba a añadir también si siempre ocurre que se actualizan las tablas de la 1 a la 60 y las siguientes no, porque, esto echaría por tierra la idea de que "si no hay nada que actualizar no se actualiza".

Quiero decir, que, si de las 160 tablas se actualizan la 1, 5, 10, 30, etc., es posible entonces que ocurra lo que Lepe refiere y yo machaco: el resto de las tablas no cambiaron, por tanto no hay nada que actualizar y la consulta no produce error alguno pero tampoco actualiza nada... como es lógico.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 24-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
¿Puedes poner algún trozo de código que uses para crear la conexión, alias, y ejecución de las consultas?

Si sigue pasando, hay algo que se nos escapa, algo que para ti no tiene importancia pero es el kid de la cuestión. ¿las carpetas están compartidas en otros ordenadores?, ¿ están siendo usadas por otra aplicación?.

¿Qué sentencias sql estas ejecutando?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 24-10-2006
vicvil vicvil is offline
Miembro
 
Registrado: may 2003
Ubicación: Chile
Posts: 157
Poder: 22
vicvil Va por buen camino
Como les decía ayer, no es que las tablas no tengan nada que actualizar, les estoy agregando campos y además estoy creando nuevas tablas dentro de las carpetas.

Este es un pedazo de código como lo estoy haciendo:

Query:=TQuery.Create(Application);
Query.DatabaseName:= Ruta de cada carpeta
Query.SessionName:= nombre de sesion;
Query.SQL.Clear;
Query.SQL.Add('Alter table tabla1 Add campo Char(10)');
try
Query.ExecSql
except
end;
Query.close;
//
Query.SQL.Clear;
Query.SQL.Add('Alter table tabla2 Add campo Char(1)');
try
Query.ExecSql
except
end;
Query.close;

etc

Lo que estoy tratando de hacer es por ejemplo lo siguiente:
Se tienen mas de 100 carpetas de Empresas, dentro de cada una de ellas tenemos las carpetas de los periodos de trabajo (años) que pueden ser n y dentro de ellas las carpetas con los meses (1 a 12). Yo estoy actualizando las tablas de las carpetas de los meses, de los periodos y de las empresas. Pero se actualiza por ejemplo hasta la Empresa 60 hasta el periodo x hasta el mes 5 y de ahi en adelante ya no actualiza nada. ¿Que entrete no?
Responder Con Cita
  #5  
Antiguo 25-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por vicvil
¿Que entrete no?
No. Era de esperar.

Código Delphi [-]
try
Query.ExecSql
except
end;
Al no poner nada entre el except... end, estas diciendo que si ocurre alguna excepción, simplemente se la coma con patatas y siga adelante. Por eso no muestra ningún mensaje de error. Debes hacer lo siguiente:
Código Delphi [-]
try
Query.ExecSql
except
  on E: Exception do
  ShowMessage(Format('Atencion error de tipo: %s', [E.ClassName]));
end;
Ver si da fallos en ejecución y despues controlar los fallos que dé.

Código Delphi [-]
try
Query.ExecSql
except
  On E: << el tipo que te haya mostrado el ShowMessage anterior>> do
  begin
     << controlar de la forma oportuna >>
  end;
  On E: << otro tipo de fallo >> do
  begin
  << lo que sea>>
  end
  else
    ShowMessage(Format('Atencion Error No esperado de tipo: %s', [E.ClassName]));
end;

Por cierto, sigo diciendo que un Log del estilo que comenté es necesario para este tipo de cosas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 25-10-2006
vicvil vicvil is offline
Miembro
 
Registrado: may 2003
Ubicación: Chile
Posts: 157
Poder: 22
vicvil Va por buen camino
Hice lo que me indicaste pero me aparece un error mas bien generico entiendo. Me envia el mensaje EDBEngineError para mi esto no me dice mucho, debe haber alguna forma de ver el error exacto. ¿Como se puede hacer?
Responder Con Cita
  #7  
Antiguo 26-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Quizás el mensaje de la propia excepción te ayude algo más:

Código Delphi [-]
  ShowMessage(Format('Atención error de tipo: %s. Mensaje de error: %s', [E.ClassName, E.Message]))

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 26-10-2006
vicvil vicvil is offline
Miembro
 
Registrado: may 2003
Ubicación: Chile
Posts: 157
Poder: 22
vicvil Va por buen camino
Unhappy

Hice la prueba.
Me arrojó el mensaje de error, pero este mensaje me dejó mas consternado aun, ya que dice lo siguiente:

"Too many open databases
Alias"

¿Por que si yo estoy cerrando los querys?
Incluso hice la prueba cerrando y liberandolos y aun asi me envía el error.
Yo creo que no libera la memoria como debería hacerlo.
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
Liberar memoria Perrero80 Varios 15 06-04-2017 04:07:10
Liberar dll de memoria lgarcia Internet 1 11-08-2005 00:26:29
Liberar Memoria JoseQ Varios 6 16-07-2004 18:49:21
Liberar memoria de un QR. mlara Impresión 1 21-02-2004 18:31:16
Liberar Memoria susje Varios 3 31-07-2003 23:18:18


La franja horaria es GMT +2. Ahora son las 13:56:18.


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