![]() |
existe un impedimento para hacer subconsultas de interbase en delphi?
existe un impedimento para hacer subconsultas de interbase en delphi?
veran puse este query: SELECT * FROM SUMEMB where docto in ( SELECT DISTINCT docto FROM SUMEMB INNER JOIN DETTRA ON (SUMEMB.DOCTO = DETTRA.NUMTRA) AND (SUMEMB.TDAORI = DETTRA.TDAORI) AND (SUMEMB.TDADES = DETTRA.TIENDA) WHERE ((SUMEMB.FECHA >= '08/01/2004') AND (SUMEMB.FECHA <= '08/31/2004') AND (SERDOC = 'P')) AND ((EDOEMB = '') OR (EDOEMB = 'E')) ) ** como veran quiero todos los registros de sumemb segun la subconsulta y que no se repitan gracias x su ayuda |
Hola.
No, no existe ningún impedimento para lanzar consultas con subconsultas a Interbase en Delphi. El error tiene que estar en la misma consulta, por lo que intenta lanzarla desde una herramienta de administración de Interbase (IB-Expert, IBConsole, EMS QuickDesk, ...) Además si nos indicas el error que te devuelve, quizá te podamos ayudar. Saludos. |
Hola Edy.
Al respecto de la duplicidad de este hilo, en el foro de Interbase y en el de SQL, te recomiendo la lectura de la guia de estilo de los foros, donde están las reglas básicas de convivencia en este lugar. Y por supuesto... su cumplimiento. Hasta luego. ;) |
el dialecto de sql que usa mi interbase es el 3
guillotmarc
El error tiene que estar en la misma consulta, por lo que intenta lanzarla desde una herramienta de administración de Interbase (IB-Expert, IBConsole, EMS QuickDesk, ...) es que no me marca ningun error, solo el programa deja de responder. ya construi la consulta en el BConsole y en el EMS Interbase & firebird Manager ni no me marca ningun error. esta es la consulta: SELECT * FROM SUMEMB where docto in ( SELECT DISTINCT docto FROM SUMEMB INNER JOIN DETTRA ON (SUMEMB.DOCTO = DETTRA.NUMTRA) AND (SUMEMB.TDAORI = DETTRA.TDAORI) AND (SUMEMB.TDADES = DETTRA.TIENDA) WHERE ((SUMEMB.FECHA >= '08/01/2004') AND (SUMEMB.FECHA <= '08/31/2004') AND (SERDOC = 'P')) AND ((EDOEMB = '') OR (EDOEMB = 'E')) ) solo se bloquea el programa donde la haga. no marca error. gracias por su ayuda |
Ayuda Porfavor
Ayuda Porfavor
|
Hola:
Prueba a "sacar" el select interior y quitando los condicionantes. Si funciona, ve añadiendo uno a uno y probando cada uno de los condicionantes. Saludos. |
Hola.
Si la consulta funciona bien en el EMS, no tiene porqué fallar en Delphi. Seguramente será un problema de los componentes de acceso. ¿ cuales usas ?. Respecto a la consulta, obtendrás exactamente el mismo resultado si quitas el DISTINCT de la subconsulta, y facilitas que el motor busque la mejor optimización de la consulta. Tampoco es necesaria la utilización de una subconsulta, esta consulta debe darte el mismo resultado :
Finalmente si utilizas Interbase 6, te recomiendo que pases a Interbase 7 o Firebird (este último es gratuito). |
La franja horaria es GMT +2. Ahora son las 17:30:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi