Como criar função de linha?

Firebird

29/08/2007

Galera, preciso criar uma função de linha no FireBird e não sei como faço.

Exemplo: Select Soma(1,2) From RDB$DATABASE

Em ORACLE é muito fácil fazer. Mas e em FireBird? Como faço?

Só UDF? Se eu criar uma UDF eu terei que distribuir esta DLL para cada cliente?


Jáder Medeiros

Jáder Medeiros

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

29/08/2007

Como assim? O que exatamente essa função faz?


GOSTEI 0
Jáder Medeiros

Jáder Medeiros

29/08/2007

Ela soma (ela soma 2 números e retorna o resultado).

Obrigado pela atenção!


GOSTEI 0
Sremulador

Sremulador

29/08/2007

Select sum(1+2) From RDB$DATABASE 


com parametros

Select sum(:n1+:n2) From RDB$DATABASE 



GOSTEI 0
Jáder Medeiros

Jáder Medeiros

29/08/2007

SrEmulador, não é isso que preciso. Preciso de criar uma função de linha.

Dei apenas um exemplo simples de uma função de soma.

Quero ter a possibilidade de chamar minha função dentro de um sentença SQL a qualquer momento. Sacou? Tipo a função SubString.


GOSTEI 0
Gandalf.nho

Gandalf.nho

29/08/2007

Ah, agora entendi o que você quis dizer com função de linha. Sim, para chamar uma função customizada de dentro de um comando SQL só com UDF mesmo e não é necessário distribuir a todos os clientes, pq a DLL fica somente no server.


GOSTEI 0
Jáder Medeiros

Jáder Medeiros

29/08/2007

Que ´meleca´!!! A ném!!! Quando falei clientes, quis dizer empresas (servidores).

Ow Gandalf.nho, tem certeza que não tem outro jeito? Que coisa chata! Vou ter que mudar de banco de dados então só por este GRAVE defeito.


GOSTEI 0
Gandalf.nho

Gandalf.nho

29/08/2007

Você pode criar funções no próprio banco tb (procedures), mas elas não são chamadas como uma função interna ou UDF, daí não sei se serve para o seu caso.

E quanto às UDFs, pq é tão grave assim usá-las?


GOSTEI 0
Jáder Medeiros

Jáder Medeiros

29/08/2007

Acho péssima a idéia de ter que controlar além da versão do executável, a versão das UDFs dos clientes (empresas).
Se fosse uma função embutida diretamente no arquivo de banco de dados, seria MUITO mais simples realizar uma manutenção da função.


GOSTEI 0
Gandalf.nho

Gandalf.nho

29/08/2007

Bem, dentro do banco só com procedures mesmo, mas elas são chamadas de maneira diferente de uma função interna/UDF. Dependendo para o que você precisa, elas irão servir perfeitamente.


GOSTEI 0
Admin290

Admin290

29/08/2007

[quote:5760d6b9c2=´Jáder´]Galera, preciso criar uma função de linha no FireBird e não sei como faço.

Exemplo: Select Soma(1,2) From RDB$DATABASE

Em ORACLE é muito fácil fazer. Mas e em FireBird? Como faço?
[/quote:5760d6b9c2]
Amigo, comecei a pouco a mexer com o oracle, vc poderia dar um exemplo de como fazer uma função de linha, ja que dei uma rapida procurada no google e nao achei material a respeito disso.


GOSTEI 0
Jáder Medeiros

Jáder Medeiros

29/08/2007

Amigo, é muito simples. Vou dar um clássico exemplo da função soma:
Create Or Replace Function Soma(num1 In Int, num2 In Int) Return Int Is
Begin
Return(num1+num2);
End;



GOSTEI 0
Admin290

Admin290

29/08/2007

muito facil mesmo, acho que foi isso que nao achei nada no google.

So uma duvida me restou, posso usar todos os comando do pl sql ??
estruturas if then else, for etc.... ???
Se vc souber um endereço na internet para me passar para eu poder pesquisar para encerrar este topico aqui, agradeceria.


GOSTEI 0
Jáder Medeiros

Jáder Medeiros

29/08/2007

Taí: [url]http://www.oracle.com/technology/documentation/database.html[/url]


GOSTEI 0
POSTAR