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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Efectivamente ya había leído que IBX esta ligado con Interbase y aunque funciona en la mayoría de los casos bien con FB no se garantiza su funcionamiento ya que FB cada vez se aleja más de IB. Ahora bien, dbExpress mencionas que utiliza un controlador para conectarse, pregunto si este controlador no puede ser el que utiliza en mi caso el servidor embedded de FB (fbclient.dll). Digo, para hacer la prueba.

Edito: Veo que SQLConnection mantiene una propiedad VendorLib que contiene gds32.dll que menciona la documentación de FB que puede ser sustituido por fbclient.dll para acceder al servidor. Voy a hacer la prueba a ver si funciona.

¿Hay alguna forma de meter el drivername de Firebird dentro del componente? De manera que cuando uno quiera conectarse con FB y sus bibliotecas propias solo haya que cambiar esta propiedad.
__________________
AKA "El animalito" ||Cordobés a mucha honra||

Última edición por AzidRain fecha: 06-05-2008 a las 16:58:50.
Responder Con Cita
  #2  
Antiguo 06-05-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Amigo Acid,
He leído que usas la versión 2.0, en ese caso deberías optar por algo más seguro, MDO FIBPlus, u otros... la verdad es que desconozco cuales son pagos y cuales son gratuitos.

Para la versión 1.5 con IBX yo no he tenido problemas, por el momento, pero el salto de 1.5 a 2.0 es algo brusco como para arriesgarse a seguir usando IBX. Al menos yo no me animaría a seguir usando IBX con la 2.0 habiendo bibliotecas que están preparadas para ello.

La compatibilidad de IBX a Firebird se está desaparaciendo.

Yo no uso otros componentes que no sea IBX, por el momento, tendrías que probar como dice Al si no hay por allí alguna propiedad en los componentes Zeos que permita trabajar correctamente con Firebird.

Supuestamente, por lo que he leído en otros hilos, Zeos trabaja bien con Firebird.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 06-05-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Me rindo...usando dbExpress y un pequeño programa para probar solamente este caso, me arroja el mismo problema:



Como pueden ver tenemos la excepción que se genera, arriba tenemos el código que uso para pasarle la fecha al parámetro y abajo el query que tengo definido.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #4  
Antiguo 06-05-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Pues no sé yo, pero tu consulta tampoco va desde el propio IB Expert.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 06-05-2008 a las 19:19:59. Razón: He descubierto la rueda
Responder Con Cita
  #5  
Antiguo 06-05-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
¿Entonces el error lo tienes en el extract?
Yo andaba pensando en que hasta podría ser el dialecto y/o el tipo que tienes definido en el campo. ¿Es TIMESTAMP? ¿DATE?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 06-05-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Llevo media hora dándole vueltas a esto y buscando en Google, pero no encuentro nada relevente.

Después de algunas pruebas en IBExpert, pareciera que la función Extract en Firebird no soporta parámetros a menos que se esté dentro de un procedimiento almacenado y el parámetro en cuestión esté declarado en su cabecera. De ésta forma sí funciona, pero con un parámetro "suelto" no.

Debe existir una razón para esto. ¿Alguien puede verificar si pasa lo mismo con InterBase?

Saludos.

Al.
Responder Con Cita
  #7  
Antiguo 06-05-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Asi parece Al.
Tal parece que no permite parámetros en EXTACT.

He probado de varias maneras (Firebird 1.5.3, IBX, dialecto 3) y nada... me arroja el mismo error que a AzidRain.

¿Se nos estará pasando algo por alto? ¿O será algo propio de Firebird?
Pues yo ma me siento un tanto loquito por no hallarle vuelta.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 06-05-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Me contesto yo mismo:

Si es posible definir la conexion con FB mediante la modificación del archivo dbxdrivers.ini que contiene las definiciones de todas las bases de datos que utiliza el componente.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #9  
Antiguo 07-05-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Finalmente la solución salió:

Extract requiere que se le pase un valor tipo datetime por lo que es forzoso hacer un cast, al pasarle un parametro tdatetime simplemente no sabe como manejarlo y le es imposible hacer el cast o manejarlo directamente. Curiósamente si utiliza uno el parametro tipo date para otras funciones o bien comparando directamente mediante "<,>, o =". Para usarlo con extract hay que hacer esto:

Código Delphi [-]
ClientDataset2.Close;

 f :=   StringReplace( datetostr(efecha1.Date),'/','.',[rfReplaceAll]);

 SQLDataset1.ParamByName('fecha1').AsString :=  f;

 ClientDataset2.Open;

Y el query queda:
Código SQL [-]
  select * from facturas 
  where  extract(day from cast(:fecha1 as date)) >5

En el caso de Delphi, por claridad convertimos el valor del datepicker a un formato que nos reconozca FB, en este caso la fecha separada con puntos que es como FB reconoce que se trata de una fecha en formato "DD.MM.YYYY", si se la pasamos tal como la tiene el datepicker FB dará por hecho que es una fecha en formato americano tan solo por contener las diagonales.

Posteriormente en el query, hacemos un cast al contenido del parametro, que en este caso es una cadena simple, y lo convertimos en un valor date que extract si se digna en aceptar.

Y así si funciona, aunque implica unas líneas más de código.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #10  
Antiguo 07-05-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
AzidRain, me alegro que hayas logrado lo que buscas. Yo habia probado metiendo cast por un lado, sacando por el otro..., pero no se me ocurrió hacer algo así.

Ahora si podrás dormir tranquilo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
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
tipo date jSr MySQL 7 14-11-2007 08:36:57
Como funcionan los indice para una tabla de tipo TADOTable locotenentul Conexión con bases de datos 1 10-04-2007 13:46:58
Como seleccionar de una campo tipo date solo el dia Gaby123 Conexión con bases de datos 1 06-09-2006 16:55:50
Como filtrar un campo tipo Date en una Tabla? JuanErasmo C++ Builder 6 21-12-2005 09:24:59
campo tipo date Giniromero Firebird e Interbase 21 13-08-2003 13:47:53


La franja horaria es GMT +2. Ahora son las 06:47:58.


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