[firebase-br] StoreProcedure
Sandro Souza
escovadordebits em gmail.com
Ter Abr 14 16:16:26 -03 2009
Bom dia/tarde Mário.
Vou criar aqui uma pequena stored procedure que servirá de exemplo básico:
-- Trocando o caracter de término de comando.
SET TERM ^ ;
-- Criando ou alterando a nossa stored procedure de exemplo.
CREATE OR ALTER PROCEDURE TABELA_VIRTUAL
-- Nesse exemplo, não precisamos de parâmetros de entrada, então teremos
apenas parâmetros de saída.
-- Cada parâmetro de saída funcionará como uma coluna/campo da tabela
virtual.
RETURNS (
-- Uma coluna/campo de código.
CODIGO INTEGER,
-- Uma coluna/campo de descrição.
DESCRICAO VARCHAR(10)
) AS
-- Vamos criar uma variável local para ser um contador de linhas.
DECLARE VARIABLE INDICE INTEGER;
BEGIN
-- Inicializa o contador.
INDICE = 1;
-- Laço de geração de linhas, que geralmente seria baseado em um FOR
SELECT.
WHILE (INDICE <= 10) DO
BEGIN
-- Gera o próximo código.
CODIGO = INDICE;
-- Gera a próxima descrição.
DESCRICAO = CAST(('Linha ' || INDICE) AS VARCHAR(10));
-- Envia/retorna mais uma linha/registro da tabela virtual.
SUSPEND;
-- Incrementa o índice.
INDICE = INDICE + 1;
END
END^
-- Trocando o caracter de término de comando.
SET TERM ; ^
Agora, experimente alterara a sua query para: *SELECT * FROM TABELA_VIRTUAL*
Ou seja, usar a stored procedure como se fosse uma tabela ou visão.
Espero que esse pequeno exemplo tenha servido para lhe dar uma luz sobre
essa questão.
Espero ter ajudado mais que atrapalhado. :D
2009/4/14 Mário Reis <mariodosreyx em gmail.com>
>
> Bom dia pessoal,
>
> É possivel substituir um Querie (MDO/IB) por uma StoreProcedure e polo a
> alimentar uma Dbgrid ou um QReport?
>
> Como é que isso se faz estou a tentar e não consigo.
>
> Alguma dica, um pequeno exemplo?
>
> Obrigado
> Mário
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista