GARANTIR DESCONTO

Fórum Funções string, matemáticas e de data #46914

22/09/2004

0

Sou usuário do mysql e resolvi experimentar o firebird embarcado, mas estou tendo dificuldade em utilizar funções, por exemplo:

SELECT LEFT(DESCRICAO, 20) FROM PRODUTOS

ou SELECT * FROM DATAS WHERE MONTH(DATA) = 3

elas retornam token inválido LEFT e MONTH.

Onde acho uma apostila sobre interbase/firebird que não fale apenas dos comandos sql, mas também de funções de tratamento de string, funções matemáticas, de datas e de converssão que não seja apenas a função CAST, pois se só existir essa então eu desisto e volto para o mysql.


Algoritmos

Algoritmos

Responder

Posts

22/09/2004

Fsflorencio

Procure em sites como www.firebase.com.br ou www.comunidade-firebird.org.

Mas já te adianto que para resolver este problema vc pode usar a função substring e extract.

ps. Não desista tão rápido assim do Firebird!


Responder

Gostei + 0

22/09/2004

Gandalf.nho

Você deve procurar sobre UDF. Um bom começo é olhar a biblioteca freeware RFunc [url]http://rfunc.sourceforge.net/[/url]


Responder

Gostei + 0

22/09/2004

Afarias

Em geral vc vai ter de usar UDFs (funções externas) visto q o IB (ou FB) é pobre em funções internas... mas expecificamente nestes casos vc pode usar (FB 1.5)::

SELECT SUBSTRING(DESCRICAO FROM 1 FOR 20) FROM PRODUTOS

SELECT * FROM DATAS WHERE EXTRACT(MONTH FROM DATA) = 3


E leia tb::

http://www.ibphoenix.com/downloads/Firebird_v15.108_ReleaseNotesPortugBrasil.pdf


T+


Responder

Gostei + 0

23/09/2004

Algoritmos

Valeu pessoal, muito obrigado pelas dicas.

Eu realmente não vou desistir do firebird tão fácil não, aquele desabafo foi porque eu estava extremamente euforico pelo firebird embarcado, então quanto surgiu a primeira dificuldade eu me assustei.

Gandalf, não sei se você recebeu meu e-mail, mas agora gostaria de saber como realmente utilizar a rfunc com o firebird e o firebird embarcado pois ela me pareceu bastante interessante. Será que é preciso fazer alguma alteração no arquivo firebird.conf para que ele passe a utilizar a rfunc.dll, eu apenas a copiei para a pasta e:\temp\udf, já que estou com teste.fdb e a fbembed.dll na pasta e:\temp.


Responder

Gostei + 0

23/09/2004

Gandalf.nho

Não sei se precisa mexer no Firebird.conf, em casa estou usando na pasta padrão do Firebird (versão normal, não embedded) e não precisei configurar nada. Com a UDF instalada, basta declarar em seu banco de dados as funções desejadas (use DECLARE EXTERNAL FUNCTION) e elas estarão disponíveis para o uso. Na documentação do RFunc existe um arquivo com todas as funções disponíveis e seus parâmetros. Qualquer dúvida de como declarar uma função específica, poste aqui.


Responder

Gostei + 0

23/09/2004

Luizneto

Um amigo instalou as duas UDFs que vem com o Firebird para que eu tivesse acesso as funcoes RPad e LPad. Como faco para distribuir minha aplicacao com este recurso ? terei que instalar manualmente as UDFXX.dll nas maquinas de meus clientes ou posso envia-las juntamente com meu executavel ou ate mesmo apenas copia-las para uma pasta do Firebird 1.5 na instalacao que elas irao funcionar ?


Responder

Gostei + 0

23/09/2004

Algoritmos

Luiz, pela resposta do Gandalf, além de enviar as dll junto com seu executável, você deverá declarar as funções no banco de dados.


Responder

Gostei + 0

23/09/2004

Afarias

As DLLs (UDFs) devem ficar no SERVIDOR (FIREBIRD) na pasta UDF

No caso do FB Embedded, essa pasta (UDF) fica onde está os arquivos do FB (e os seus executáveis) -- não tenho certeza mas TALVEZ vc tenha neste caso q alterar (ou ter) o arquivo firebird.conf com a configuração::

RootDirectory = pasta_onde_está_a_pasta_UDF



T+


Responder

Gostei + 0

24/09/2004

Algoritmos

Ok, A. Farias e Gandalf, mas agora o problema é este ai:

Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Access to UDF library ´rfunc.DLL´ is denied by server administrator.


Responder

Gostei + 0

24/09/2004

Gandalf.nho

Você tem que ter permissão para acessar o diretório onde está a UDF.


Responder

Gostei + 0

24/09/2004

Algoritmos

Ok, mas como dar essa permissão ? Seria no arquivo firebird.conf ?


Responder

Gostei + 0

24/09/2004

Gandalf.nho

Qual o seu sistema operacional?


Responder

Gostei + 0

25/09/2004

Algoritmos

Windows XP e Windows 98, o problema ´Access to UDF library ´rfunc.DLL´ is denied by server administrator´ ocorre nos dois, só com o firebird embarcado. Vocês estariam se perguntando por que eu não utilizo logo o fb server, bem, é que achei muito interessante você poder embarcar o SGBD na aplicação, mesmo que seja apenas monousuário, por isso a insistência na utilização do fb embarcado. Por favor, se alguém com mais experiência no fb puder instalar e testar a fbembed.dll utilizando UDFs tanto no delphi quanto no IBExpert e der uma dica para solucionar o problema eu agradeceria muito.


Responder

Gostei + 0

25/09/2004

Afarias

|Por favor, se alguém com mais experiência no fb puder instalar e testar
|a fbembed.dll utilizando UDFs tanto no delphi

Utilizo normalmente.


|quanto no IBExpert e der uma dica para solucionar o problema eu
|agradeceria muito.

Vc não tem como usar o IBExpert -- poque ele teria q estar instalado junto (na mesma pasta) com o FB Embedded, certo?? (bom, vc pode copiar todos os arquivos do FB Embedded (inclusive a pasta UDF) para a pasta do IBExpert, e tentar assim...)

Mas... sugiro q use o FB embedded apenas para distribuição -- mantenha o FB (server, normal) no seu ambiente de desenvolvimento.



T+


Responder

Gostei + 0

25/09/2004

Algoritmos

Certo A. Farias, mas como é esse ´utilizo normalmente´ ? Porque comigo ocorre o erro que mencionei nas mensagens anteriores, por avor, é necessário alterar algum arquivo ou qualquer outra coisa ? Tá tudo muito vago.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar