[firebase-br] Stored procedure simples

RedDevil reddevil em reddevil.eti.br
Ter Nov 15 20:48:42 -03 2005


ola Lucas,


Post By Lucas:
>[cut]
> Problema: Eu estou usando o Firebird 1.5 no meu Pc e quando tento criar uma
> procedure de Seleção com direção ao código ocorre um erro tanto no IBExpert
> quanto no Prompt Do Isql. Por que ??

o erro que da quando da criaçao dessa tua SP pode ser devido e esses 
dois lances ae abaixo:


> Create procedure seleciona(cód integer) as

seria "cod", e nao "cód"...


> SELECT CODIGO, NOME, FONE, ENDERECO FROM CONTATOS 
> WHERE CODIGO = :cod

esta faltando um ";" (ponto e virgula) no final da instruçao SQL...


como eu nao entendi a finalidade dessa tua SP, eu adaptei ela para que 
ela te retorne o resultado do teu select, tranformando-a assim em uma 
Stored Procedure Selecionavel...

coloque esse codigo que eu estou colocando ae abaixo, tal qual esta, 
salvo algum erro de digitaçao meu (qualquer coisa na qual voce ficar na 
duvida, falae, que eu ou algum outro colega ae da lista te ajuda), e 
alterando o tamanho/tipo dos campos para ficarem como estao na tua 
tabela, no IBExpert, e cria a SP pelo IBExpert, que entao voce nao 
precisa se preocupar com o SET TERM...

crie a SP usando o IBExpert, e depois voce usa ela no delphi, mediante o 
uso de um componente TQuery, sendo que nesse componente voce da um 
select na SP, passando o parametro, e a SP te retorna no TQuery as 
informaçoes que satisfaçam a condiçao que voce especificou...

e vai fundo ae... na minha humilde opiniao, o uso de SP's eh o melhor 
caminho para se trabalhar com o Firebird, eh um recurso poderoso e eh 
muito preferivel usar SP's a ficar fazendo selects extremamente complexos...

se voce precisar de alguma literatura sobre o assunto, eu acho que voce 
deveria ar uma olhada no livro do Mr. Cantu, o Firebird Essencial 
(http://www.firebase.com.br/fb/livro/fbessencial), pois nele tem um 
excelente exemplo de SP Selecionavel, e tambem todo o principio da coisa 
no que diz respeito ao PSQL, que eh a "linguagem" usada em SP's e 
Triggers...

eis ae o codigo da SP:

/* ========== inicio da SP ================ */
create procedure seleciona( cod integer )
returns(
rcodigo integer,
rnome varchar(50),
rfone varchar(10),
rendereco varchar(50)
)
as
begin

SELECT CODIGO, NOME, FONE, ENDERECO FROM CONTATOS
WHERE CODIGO = :cod
into :rcodigo, :rnome, :rfone, :rendereco;

suspend;

end
/* ========= final da SP ========== */


boa sorte ae...


[]s
força sempre!!!
ate +++

-- 
Luiz "RedDevil" Stefanski - Linux User #399026
http://www.RedDevil.eti.br - Delphi 4 Powered by IBObjects
exemplos e dicas sobre o IBObjects:
http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165
compilaçao/instalaçao do IBObjects sabor BPG:
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630






Mais detalhes sobre a lista de discussão lista