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 16-03-2010
Avatar de barman
barman barman is offline
Miembro
 
Registrado: may 2003
Posts: 139
Poder: 21
barman Va por buen camino
Udf problemas al actualizar a 2.5

He actualizado firebird de 1.5 a 2.5 , pasando por la 2.1 (en que hora ), y me he me estoy encontrado problemas con las fudlib.dll

Ejemplo:
en Functions:
Código SQL [-]
Library name: fudlib
Entry point:  fudlib_week
WEEK(
    Timestamp by reference
)
returns:
    Integer by value

Al ejecutar cualquier query me da error en en los parentesis.
Select week(fecha) from cobros.

error en la sentencia:
Código SQL [-]
Starting transaction...
Preparing query: Select week(fecha) from cobros.
Error: *** IBPP::SQLException ***
Context: Statement::Prepare( Select week(fecha) from cobros. )
Message: isc_dsql_prepare failed

SQL Message : -104
Invalid token

Engine Code    : 335544569
Engine Message :
Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 12
(


Estando declarada fecha como un timestamp.

El caso es que me da error en las mayorias de las funciones. la base de datos esta creada en sql 1.

En la version 1.5 no me daba ningun problema, repito que ha sido al actualizar, ¿tengo que declarar algo nuevo en las funciones externas?

Gracias.
Responder Con Cita
  #2  
Antiguo 16-03-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ten en cuenta que en las últimas versiones de firebird ya van incluidas casi todas las funciones que antes estaban fuera y ya no se necesitan esas dll, ¿puede que sea eso?
Responder Con Cita
  #3  
Antiguo 16-03-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Week es una palabra reservada en Firebird 2.5, por lo que no puede usarse en una UDF.

http://www.firebirdsql.org/devel/doc...swords-cleanup

Desde Firebird 2.1 puedes saber la semana con un EXTRACT

EXTRACT(WEEK FROM DATE)

Cuando pasas de Firebird 1.5 a 2.5 tienes que leerte las Release Notes de Firebird 2.0x, 2.1x y 2.5.

http://www.firebirdsql.org/devel/doc...leaseNotes.pdf
http://www.firebirdsql.org/devel/doc...snotes210.html
http://www.firebirdsql.org/devel/doc...lsnotes25.html

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 16-03-2010
Avatar de barman
barman barman is offline
Miembro
 
Registrado: may 2003
Posts: 139
Poder: 21
barman Va por buen camino
Gracias por tan pronta respuesta.


Entiendo que algunas funciones se hallan incluido dentro, pero supuse que se respetaria un orden jerarquico.

guillotmarc tienes razon deberia de haberme estudiado antes las relase, estoy un poco vagete, simplemente he actualizado a ver que pasaba.

Esta es un poco mas dificil a ver que se os ocurre.
Borro la funcion valltrim, para verificar que no este ya incluida.
Código SQL [-]
Starting transaction...

Preparing query: SELECT VALLTRIM(DESCRIPCION) FROM EMPLEADOS
Error: *** IBPP::SQLException ***
Context: Statement::Prepare( SELECT VALLTRIM(DESCRIPCION) FROM ARTICULOS )
Message: isc_dsql_prepare failed

SQL Message : -804
An error was found in the application program input parameters for the SQL statement.

Engine Code    : 335544569
Engine Message :
Dynamic SQL Error
SQL error code = -804
Function unknown
VALLTRIM

Vale ahora la vuelvo a declarar y ejecuto.

Código SQL [-]
IBPP::SQLException
Context:Statement::fech
Message: isc_dsql_fetch faile
SQL Message:-902
Unsuccessful execution caused by a system error tha precludes successful subsequent statements.

y se desconecta la base de datos.

La verdad es que le tengo bastante cariño a estas funciones, y las utilizo en la mayoria de mi soft, me temo que si quiero actualizar voy a tener que mirarme una a una (son 105).

De todas formas muchas gracias por vuestras respuestas,(si me podeir mirar lo del valltrim os estaria agradecido, ya que no lo encuentro por ningun sito),
1000 thanks.
Responder Con Cita
  #5  
Antiguo 16-03-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Yo intentaría evitar todas las UDF's posibles (yo ya no utilizo ninguna en mis programas).

Siempre te vas a encontrar problemas de estos, cuando actualizes a una versión superior de Firebird te puedes encontrar UDF's que ya no funcionen correctamente. Por eso es mejor evitar el uso de UDF's.

Si los programadores de la UDF la mantienen actualizada no hay problema, pero por lo que veo ya no hay forma de entrar en la página de la FUDLibrary.

A partir de Firebird 2.0, puedes utilizar la función TRIM, que ya está implementada en el mismo motor (no hay que usar ninguna UDF) y elimina los espacios delante y detrás de tu cadena.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
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
Problemas al actualizar en D4PHP Raynel PHP 0 20-12-2008 19:46:51
Problemas al actualizar Access Pitilingorri Conexión con bases de datos 13 19-02-2007 16:34:47
problemas al actualizar por segunda vez @-Soft Tablas planas 2 07-09-2006 19:53:22
Problemas al actualizar en dbgrid oscjae Firebird e Interbase 1 01-12-2005 15:14:30
Problemas al actualizar un TClientDataset y ADO PEDRO_PASAMAR Conexión con bases de datos 1 30-11-2004 10:52:46


La franja horaria es GMT +2. Ahora son las 04:24:03.


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