[firebase-br] Erro declarando udf no Interbase

Jeferson Oliveira jefersonfoliveira em gmail.com
Ter Maio 16 08:32:20 -03 2006


Rafael,

A função deve ser declarada exatamente como demonstrado na documentação da 
DLL, que no meu caso (Firebird 1.5.0.4306) é

DECLARE EXTERNAL FUNCTION substr
CSTRING(80),
SMALLINT, SMALLINT
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';

Note que em relação à declaração que você passou há duas diferenças 
importantes: o limite de caracteres permitido no primeiro parâmetro, e o 
ponto de entrada da função no módulo.


Abraço!
Jeferson Oliveira


"Luiz Henrique Severo" 
<lhsevero em rpgsolucoes.com.br> escreveu na 
mensagem news:31149.2171757438$1147731356 em news.gmane.org...
Pessoal,

Estou tentando definir a função SUBSTR que vem com a ib_udf.dll mas não
estou conseguindo.
Fiz direto pelo IBExpert na área de udfs, não funcionou...
Apaguei e rodei o script abaixo para tentar criar "na mão", não funcionou...
DECLARE EXTERNAL FUNCTION SUBSTR
    CSTRING(256) CHARACTER SET NONE,
    SMALLINT,
    SMALLINT
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'fn_substr' MODULE_NAME 'ib_udf'

O erro que retorna toda vez que tento executar algo do tipo SELECT
SUBSTR(LIVRO,1,1) FROM LIVROS é o que segue abaixo
Invalid token.
invalid request BLR at offset 63.
function SUBSTR is not defined.
module name or entrypoint could not be found.

A dll está no diretório default do Interbase. Já tentei colocá-la no
diretório que está o gdb e nada  também...
No ibconfig tem a diretriz que diz qual o diretório de external functions.

Alguém sabe o que está faltando ou o que estou fazendo de errado?


Luiz Henrique Severo d Oliveira
RPG Soluções
www.rpgsolucoes.com.br

-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.392 / Virus Database: 268.5.6/340 - Release Date: 15/05/2006



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa







Mais detalhes sobre a lista de discussão lista