Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   UDF access y STORED PROCEDURES (https://www.clubdelphi.com/foros/showthread.php?t=46449)

papulo 01-08-2007 12:06:20

UDF access y STORED PROCEDURES
 
Estoy itentando crear uno STORED PROCEDURE pero siempre me da un error 804 al compilar, no reconoce las funciones.

El código es este:
Código:

SET TERM ^ ;

CREATE PROCEDURE NEW_PROCEDURE (
    chaar char(10))
returns (
    num integer)
as
begin
num=abs(chaar);
  /* Procedure Text */
  suspend;
end^

SET TERM ; ^

Y la parte del acceso a los UDF en firebird.conf lo he dejado así.

El path del firebird es:

c:\Program Files\Firebird\Firebird_1_5\

Código:

# ----------------------------
# External Function (UDF) Paths/Directories
#
# Type: string (special format)
#
UdfAccess = Restrict UDF;

Pero siempre me devuelve el mismo error al compilar:

Cita:

An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
ABS.
y he sacado de aquí las funciones del UDF de firebird.

Seré breve, SOCORRO. No se que pasa, leches, pero seguro que es alguna gilipollez que ahora mismo no soy capaz de ver.

Saludos.

Casimiro Noteví 01-08-2007 12:45:21

primero ejecuta esto:
Código:

DECLARE EXTERNAL FUNCTION abs
    DOUBLE PRECISION
    RETURNS DOUBLE PRECISION BY VALUE
    ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';

y luego esto:
Código:

CREATE PROCEDURE AAAAAAAAA (
    chaar char(10))
returns (
    num integer)
as
begin
num=abs(chaar);
  /* Procedure Text */
  suspend;
end


papulo 01-08-2007 12:47:00

¿Puedes explicar el por que y para que?

Casimiro Noteví 01-08-2007 12:51:34

Me limito a coger del fuente "ib_udf.sql" (o donde esté la función que necesite) la función que me interese, la ejecuto en el "sql editor" del ibexpert, y nada más, así sé seguro que funcionará. :o

papulo 01-08-2007 12:53:21

¿Puedes conectarte a Jabber un segundín y lo hablamos o vas muy de culo?

Gracias por las molestias de todas formas.

EDITO: ¿No hay forma de incluir todas las funciones de la librería en vez de una a una?

papulo 01-08-2007 13:10:34

¡¡No me has dado ni 20 segundos!!

Me has hablado en el 47 y te he respondido en el 59, que estaba leyendo :confused:

Casimiro Noteví 01-08-2007 14:03:15

jeje, siempre (procuro) estar para los amigos :)

rastafarey 01-08-2007 18:31:11

Resp
 
Si el directorio donde udf hay unos archivos .sql estos contiene el sql para incluir todas las funciones.

ASAPLTDA 24-08-2007 16:23:27

Instalacion Udf
 
Apreciados Foristas buenos dias

EL problema que no encuentra las funciones las estoy viviendo para firebird 2.01, He revisado varias cosas pero sigo sin poder usar las funciones y especificamente substr(campo,1,15)
el mensaje que retorna es :
Invalid token.
invalid request BLR at offset 16.
function SUBSTR is not defined.
module name or entrypoint could not be found.
- Registre las funciones con el scrip
No se si que no he entrndido como configurar el archivo firebird.conf

Logro usted poner a funcionar las UDF y como lo logro
Gracias

jhonny 24-08-2007 16:45:48

Cita:

Empezado por ASAPLTDA (Mensaje 225789)
Apreciados Foristas buenos dias

EL problema que no encuentra las funciones las estoy viviendo para firebird 2.01, He revisado varias cosas pero sigo sin poder usar las funciones y especificamente substr(campo,1,15)
el mensaje que retorna es :
Invalid token.
invalid request BLR at offset 16.
function SUBSTR is not defined.
module name or entrypoint could not be found.
- Registre las funciones con el scrip
No se si que no he entrndido como configurar el archivo firebird.conf

Logro usted poner a funcionar las UDF y como lo logro
Gracias

El script para activar la función SubStr es este:

Código SQL [-]
DECLARE EXTERNAL FUNCTION substr 
  CSTRING(255), SMALLINT, SMALLINT
  RETURNS CSTRING(255) FREE_IT
  ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';

Verifica si es ese el que estas usando y que en la linea #UdfAccess = Restrict UDF del archivo firebird.conf tenga el signo Sharp, almoadilla, numero o como quieras llamarlo, mejor dicho este >>> #, antepuesto a UdfAccess = Restrict UDF para indicarle que no vas a restringir las UDFs.

Espero que mi comentario te haya servido de algo ;).

ASAPLTDA 24-08-2007 18:53:24

Configurando Las Udf
 
Apreciados Foristas
Gracias por su respuestas la solucion que encontre al problema que el sistema no reconocia las UDF se debe a la configuracion del sistema
archivo FIREBIRD.CONF , en la configuracion de las UDF lo deje asi y funciono

UdfAccess = Restrict C:\Program Files\Firebird\Firebird_2_0\UDF\

No me funcionaba porque falta el ultimo \ :)

jhonny 24-08-2007 18:57:31

Cita:

Empezado por ASAPLTDA (Mensaje 225839)
se debe a la configuracion del sistema
archivo FIREBIRD.CONF , en la configuracion de las UDF lo deje asi y funciono

UdfAccess = Restrict C:\Program Files\Firebird\Firebird_2_0\UDF\

No me funcionaba porque falta el ultimo \ :)

Bueno, yo o tengo como viene por defecto

Cita:

#UdfAccess = Restrict UDF
Y me funciona bien, ¿A vos no?. :)


La franja horaria es GMT +2. Ahora son las 08:25:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi