Ver Mensaje Individual
  #12  
Antiguo 18-05-2010
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Reputación: 17
donald shimoda Va por buen camino
Cita:
Empezado por sur-se Ver Mensaje
Esta consulta funciona perfectamente en 1.5.6 y en 2.x no:
Código:
SELECT C.CCOD_SERIE, C.NCOD_MOVALM, C.DFECHAHORA, L.CTIPO, A.CARTICULOALMACEN,
       L.NCOD_ORDEN, L.CARTICULO, L.NALMACEN, L.NALMACENORIG, L.NCANTIDAD1, L.NCANTIDAD2  
FROM CABMOVALM C , LINMOVALM L, ARTICULOS A  
WHERE (C.CCOD_SERIE = L.CCOD_SERIE) 
AND (C.NCOD_MOVALM = L.NCOD_MOVALM)  
AND (L.CARTICULO = A.CCOD_ARTICULO) 
AND A.CTIPO <> 'S'  
AND ARTICULOS.CCOD_ARTICULO>='030403' and (ARTICULOS.CCOD_ARTICULO<='030403') 
and (DFECHA>='01/01/10') and (DFECHA<='01/31/10') 
AND (ARTICULOS.CESTADO='A') AND (ARTICULOS.CTIPO='N') AND A.CESTADO = 'A'
Para solucionarlo hay que cambiar los ARTICULOS. por A., o quitar el alias A y poner todo como ARTICULOS.
Ahora si me queda claro, pense que te referias a que en distintas consultas, en algunas de ellas podias usar alias y en otros no.

Cita:
Empezado por sur-se Ver Mensaje
No veo que esta consulta esté mal por ello, pero si sé que en el 2.x no funciona. Tuve que investigar el motivo y era simplemente ese. O se usa un alias en todo o no se usa en ninguno, pero no se puede a veces si y a veces no en la misma consulta. No entro a valorar si es correcto o incorrecta formalmente la SQL. Lo cierto es que en el 1.5 funciona bien y en el 2.x no.
Te entiendo, y si realmente nunca vi una consulta donde se use un alias en algunas referencias y en otro no, habria que ver que dice la norma, pero para mi esta pesimamente escrita, prestandose a confusión de quien la lee.

Cita:
Empezado por sur-se Ver Mensaje
Respecto a lo segundo, no veo porque el hecho de crear o borrar tablas en una base de datos tiene porque corromperla. Para eso está la base de datos y sus instrucciones de creación y borrado. No me parece un motivo para ello y no estoy de acuerdo con esa afirmación de que por ello voy a corromperla.
Nunca dije que CREAR una tabla sea para corromperla.
Lo que te dije es que si FB 2.1 esta EVITANDO que la dropees implica que sigue estando en uso, por tanto TU CODIGO esta mal escrito dado que intentas DESTRUIR un recurso(la tabla) mientras esta en USO. Lo mismo te pasaría con cualquier recurso, objeto, etc, como bien sabes.

Cita:
Empezado por sur-se Ver Mensaje
En la versión 1.5.6 no hay tablas temporales, así que si necesito una tabla en la base de datos para un proceso que se ejecuta en un procedimiento almacenado (por ejemplo), lo que hago es crear la tabla con un nombre TMP+código de un generador. La utilizo en el proceso que se quiera y luego cuando ya no se necesita, se hace el drop. No veo que problema o cosa mal esté haciendo por ello como para que se corrompa la base de datos. De hecho, llevo mucho tiempo usando ese sistema y nunca se me ha corrompido la base de datos.
Si fuera asi como lo mencionas no habria problemas, si muestras el código te muestro con gusto donde esta el error que causa que FB 2.1 no permita borrarla.

Cita:
Empezado por sur-se Ver Mensaje
De todas formas, agradezco tu interés y ayuda. Como verás el problema es que necesito usar la 1.5.6 y no veo porque no funciona en el WS2008. Es muy raro.
Un saludo.
Para eso no tengo solución la verdad, aunque dado el tiempo que paso desde que liberaron la obsoleta v 1.5.6 y el 2008... Como sabes la compatilibidad esta hacia atrás, hacia adelante solo puedes esperar que sea compatible.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita