[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