PDA

Ver la Versión Completa : Ayuda por favor para armar consulta en firebird


Velia
21-08-2007, 16:52:06
HOla
Cometi el tremendo error de programar en delphi con access y una vez terminado el programa recién pasarlo a firebird porque no lo se utilizar bien y ahora que quiero ponerlo en funcionamiento me salen miles de errores y justo ahora que estoy con los tiempos pasados.
Bueno. Mi problema es esta consulta que en access la generaba bien


SELECT
(Entradas.nro_expte & '-' & Entradas.letra_expte & '-' & Entradas.anio_expte) AS NroExpte,
Entradas.nro_expte,
Entradas.letra_expte,
Entradas.anio_expte,
Entradas.fecha_ingreso,
Entradas.cod_profesional_emisor,
Entradas.tiempo_estimado_resolucion,
Expedientes.extracto,
(Profesionales.apellido_profesional & IIf(Profesionales.nombre_profesional<>'',', ' & Profesionales.nombre_profesional,'')) AS NomApeAbogado
FROM (Entradas INNER JOIN Expedientes ON (Entradas.nro_expte= Expedientes.nro_expte AND Entradas.letra_expte = Expedientes.letra_expte AND Entradas.anio_expte=Expedientes.anio_expte))
LEFT JOIN Profesionales ON Entradas.cod_profesional_emisor = Profesionales.cod_profesional
WHERE ISNULL(Entradas.fecha_salida)
AND Entradas.tiempo_estimado_resolucion < :PFechaActual






pero cuando quiero probarla en firebird me dice: [ODBC Firebird Driver][Firebird]Dynamic SQL Error SQL error code=-104 Token unknown -line2, column 21

Perdon por poner todo el codigo sql, lo que pasa, es que no se cual es el caracter que no reconoce firebird y no sé por cual otro lo podria reemplazar o si debo poner en comillas dobles, no sé.

Gracias por la ayuda.
Velia

gluglu
21-08-2007, 17:09:01
Pues entiendo que el carácter que no te reconoce es el que está en la línea 2, y posición 21, tal y como te indica el error. Ese caracter en tu consulta es '&'.

SELECT
(Entradas.nro_expte || '-' || Entradas.letra_expte || '-' || Entradas.anio_expte) AS NroExpte,
...


Saludos ;)

eduarcol
21-08-2007, 17:12:25
el & es el caracter de concatenacion de VB, para concatenar en Firebird debes utilizar el doble pipe, segun la guia de arranque rapido de firebird, que dice :

Concatenación de cadenas
El símbolo de concatenación en SQL es un doble “pipe” (ASCII 124, un par sin espacio entremedio).
En SQL, el símbolo “+” es un operador aritmético y provocará un error si intenta usarlo para concatenar
cadenas. La siguiente expresión agrega el siguiente texto “ Reportado por: ” delante de cada
apellido:
'Reportado por: ' || LastName
Tenga cuidado con las concatenaciones. Tenga en cuenta que Firebird generará un error si su expresión
intenta concatenar dos o más columnas de tipo char o varchar si la longitud combinada puede exceder
el límite máximo de longitud para el tipo char o varchar (32 KB).
Vea también en las notas más abajo, Expresiones con NULL, sobre la concatenación de expresiones
que involucran NULL.

Mas informacion en:

http://www.firebirdsql.org/pdfmanual/es/Firebird-1.5-Arranque.pdf

eduarcol
21-08-2007, 17:12:59
Estoy lento :rolleyes:

Velia
21-08-2007, 17:37:47
Gracias Nuevamento Por El Ayudón
Saludos
Velia