Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-06-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Query se bloquea

Tengo este query:
Código SQL [-]
SELECT SUM(A.Votos) Suma, C.Sigla, D.Electos, B.Municipio, CASE WHEN C.Codigo < 0 THEN C.Codigo ELSE 1 END Orden
  FROM Resultados A, Mesas B, Partidos C, NumElectos D 
 WHERE A.CodPrv = '13'
   AND A.Proceso = (SELECT MAX(Codigo) FROM Elecciones WHERE CodPrv = A.CodPrv 
                       AND Proceso = (SELECT Codigo FROM Proceso WHERE CodPrv = A.CodPrv 
                       AND Nombre = 'MUNICIPALES'))
   AND A.CodPrv = B.CodPrv AND A.Mesa = B.Codigo 
   AND B.Municipio IN (SELECT Municipio FROM Junta WHERE CodPrv = A.CodPrv AND Zona = 15)
   AND A.CodPrv = C.CodPrv AND A.Partido = C.Codigo 
   AND A.CodPrv = D.CodPrv AND D.Tipo = 'J' AND D.Circunscripcion = B.Municipio 
   AND A.Partido = D.Partido 
 GROUP BY 2, 3, 4, 5
 ORDER BY 4, 5 DESC, 3 DESC, 1 DESC
Si lo ejecuto en IBManager tarda en ejecutarse 0,5 segundos (literal); si lo ejecuto desde la aplicación en la que tiene que funcionar se queda colgado y tengo que matar el programa. ¿Alguna idea de que puede estar pasando?
Responder Con Cita
  #2  
Antiguo 15-06-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Asegúrate de que es la misma base de datos y también de que el problema es el query y no una línea posterior de código, algún bucle que hagas después, etc.
Responder Con Cita
  #3  
Antiguo 16-06-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Gracias. Es la misma base de datos seguro y cuando lo ejecuto desde la aplicación del Query->Open() no pasa.
Responder Con Cita
  #4  
Antiguo 16-06-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pon un "break point" en el qr.open y cuando se pare ahí, copia el cotenido del sql que va a ejecutar. Luego lo pegas y lanzas desde el ibexpert/ibmanager.
Responder Con Cita
  #5  
Antiguo 16-06-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Pon un "break point" en el qr.open y cuando se pare ahí, copia el cotenido del sql que va a ejecutar. Luego lo pegas y lanzas desde el ibexpert/ibmanager.
Es lo que hago para comprobarlo, por eso sé que se "cuelga" en el Open.
Responder Con Cita
  #6  
Antiguo 16-06-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero tú sabes que eso es imposible, si es exactamente el mismo select con la misma base de datos, no puede ocurrir eso, salvo que devuelva tantos millones de registros que no quepan en memoria.
Responder Con Cita
  #7  
Antiguo 16-06-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Ya lo sé y por eso me tiene muy mosqueado. Debe devolver un único registro.
Responder Con Cita
  #8  
Antiguo 16-06-2020
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Yo lidié con un fallo así de misterioso y al final era debido a una StringList en la que le pasaba los parámetros a la query, no la query en si. Pero no fue sencillo encontrarlo porque no era un error evidente.
Puse un break point justo antes del problema y activé al llegar a ese punto: tools|debugger options|language exceptions|stop on delphi exceptions (después hay que sacarlo sino saltan avisos por todos lados)
A continuación recorrí unha por una todas las llamadas de cada línea hasta localizar el elemento exacto que daba el error.
Pero aparentemente (en una ejecución normal) el error parecía de la query cuando no lo era.
Responder Con Cita
  #9  
Antiguo 16-06-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Si el problema es del qr.open, se puede confirmar haciendo un test minimo: Haz una app de consola que solo tenga el conexión, el query y ejecutar el open. Si te pasa ahi, entonces si es lo que dices.

Si no? Entonces existe otro factor en tu app que lo causa.
__________________
El malabarista.
Responder Con Cita
  #10  
Antiguo 16-06-2020
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 910
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
El objeto Query tiene algún evento asociado como BeforeOpen, AfterOpen, etc...

De igual manera podrías revisar y de tener estos eventos desactivar y verifica su funcionamiento.

Ojala puedas dar solución al problema y comentar lo que encuentres...

Saludos cordiales
Responder Con Cita
  #11  
Antiguo 16-06-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Y otra prueba más: aunque parezca una tontería, a veces sirve, elimina el componente y vuelve a poner otro.
Responder Con Cita
  #12  
Antiguo 17-06-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Probaré y ya os diré que pasa. Gracias.
Responder Con Cita
Respuesta


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
El antivirus me bloquea mi programa.... LoPiTaL OOP 10 20-05-2010 23:44:53
Select bloquea update luis1980 MySQL 2 22-09-2008 13:51:04
Applyupdates me bloquea la aplicación jmlifi Conexión con bases de datos 4 29-05-2007 15:37:45
Si se bloquea Letty Conexión con bases de datos 2 23-12-2003 19:31:10
Se me Bloquea la aplicacion josejuanm SQL 2 26-05-2003 08:54:54


La franja horaria es GMT +2. Ahora son las 08:18:50.


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