| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
caiorafaelmatias Novato

Registrado: Sexta-Feira, 23 de Fevereiro de 2007 Mensagens: 19
|
Enviada: Sex Fev 23, 2007 6:06 pm Assunto: UDFs do Interbase |
|
|
Olá pessoal estou com problemas para utilizar as UDF's no Interbase e gostaria de saber se alguém pode me ajudar. O problema é o seguinte ao executar o comando a seguir no IBConsole ocorre o erro também a seguir.
Tanto a dll "FreeUDFLib.dll" quanto a dll "ib_udf.dll" estão colocadas em C:\Arquivos de Programas\Borland\Interbase\UDF. Sendo assim não sei como faço para resolver este problema. Alguém sabe?
Comando:
"SET TERM ^ ;
CREATE TRIGGER TGMAI FOR TT_MAI
BEFORE INSERT AS
DECLARE VARIABLE cFilial CHAR(3);
BEGIN
IF (new.CODFIL IS NULL) THEN BEGIN
SELECT CODLOJ FROM TT_IDF INTO cFilial;
new.CODFIL = cFilial;
END
IF (new.SEQUEN IS NULL) THEN BEGIN
new.SEQUEN = LPAD(RTRIM(CAST(GEN_ID(SQMAI, 1) AS CHAR(10))),10,' ');
END
END ^
SET TERM ;"
Erro:
"Invalid request BLR at offset 90
function LPAD is not defined
module name or entrypoint could not be found
Statement: CREATE TRIGGER TGMAI FOR TT_MAI
BEFORE INSERT AS
DECLARE VARIABLE cFilial CHAR(3);
BEGIN
IF (new.CODFIL IS NULL) THEN BEGIN
SELECT CODLOJ FROM TT_IDF INTO cFilial;
new.CODFIL = cFilial;
END
IF (new.SEQUEN IS NULL) THEN BEGIN
new.SEQUEN = LPAD(RTRIM(CAST(GEN_ID(SQMAI, 1) AS CHAR(10))),10,' ');
END
END" |
|
| Voltar ao Topo |
|
 |
thomazs Moderador


Registrado: Segunda-Feira, 1 de Março de 2004 Mensagens: 2835
|
Enviada: Sáb Fev 24, 2007 5:14 pm Assunto: |
|
|
Amigo, você registrou as UDF's para seu banco?
Se não, existe um Script para os arquivos que você disse (FreeUDFLib.dll e ib_udf.dll) que fazem esse registro. Basta executar esse script (arquivo com extensão sql). _________________ Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django |
|
| Voltar ao Topo |
|
 |
caiorafaelmatias Novato

Registrado: Sexta-Feira, 23 de Fevereiro de 2007 Mensagens: 19
|
Enviada: Seg Fev 26, 2007 9:14 am Assunto: UDFs do Interbase |
|
|
| Como assim registrar vc diz criar elas no banco ?! Sim esão lá como funções externas já criadas no Banco tanto o RTRIM como o LPAD. Será que falta fazer mais algo !? |
|
| Voltar ao Topo |
|
 |
gustavocco Administrador

Registrado: Sexta-Feira, 6 de Fevereiro de 2004 Mensagens: 4253 Localização: Chapecó - SC
|
Enviada: Seg Fev 26, 2007 9:49 am Assunto: |
|
|
Você fez a declaração das funções externas no banco de dados em questão??
Ex.:
DECLARE EXTERNAL FUNCTION SUBSTR
CSTRING(80),
SMALLINT,
SMALLINT
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'IB_UDF_SUBSTR' MODULE_NAME 'ib_udf'
.....
Como vc declarou?
Flw. _________________ Top System - www.topsystem.com.br |
|
| Voltar ao Topo |
|
 |
caiorafaelmatias Novato

Registrado: Sexta-Feira, 23 de Fevereiro de 2007 Mensagens: 19
|
Enviada: Seg Fev 26, 2007 9:54 am Assunto: UDFs do Interbase |
|
|
DECLARE EXTERNAL FUNCTION rtrim
CSTRING(80)
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'IB_UDF_rtrim' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION lpad
CSTRING(80), INTEGER, CSTRING(1)
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'IB_UDF_lpad' MODULE_NAME 'ib_udf';
Uma dúvida, estas funções devem obrigatoriamente estar implementadas no arquivo ib_udf.dll ?! Este arquivo é um arquivo padrão do Interbase ou é um arquivo onde eu deveria ter implementado tudo do zero ?! |
|
| Voltar ao Topo |
|
 |
|