RES: [firebase-br] Procedure Selecionável: executar SQL e retornar recordset

Jorge Luis Bublitz bublitz em tre-mt.gov.br
Seg Set 18 15:00:18 -03 2006


Tente assim:
CREATE OR ALTER PROCEDURE SP_EXECUTAR_CONSULTA
(TABELA VARCHAR(25), NUMCAMPOS INTEGER, FILTRO VARCHAR(150))
RETURNS (CAMPO1 VARCHAR(100), CAMPO2 VARCHAR(100), CAMPO3 VARCHAR(100),
         CAMPO4 VARCHAR(100), CAMPO5 VARCHAR(100))
AS
DECLARE VARIABLE SQLAUX VARCHAR(200);
BEGIN
  SQLAUX = 'SELECT * FROM ' || TABELA || ' WHERE ' || FILTRO;
  IF (NUMCAMPOS = 1) THEN
    FOR EXECUTE STATEMENT SQLAUX INTO :CAMPO1 DO SUSPEND;
  ELSE
  IF (NUMCAMPOS = 2) THEN
    FOR EXECUTE STATEMENT SQLAUX INTO :CAMPO1, :CAMPO2 DO SUSPEND;
  ELSE
  IF (NUMCAMPOS = 3) THEN
    FOR EXECUTE STATEMENT SQLAUX INTO :CAMPO1, :CAMPO2, :CAMPO3 DO SUSPEND;
  ELSE
  IF (NUMCAMPOS = 4) THEN
    FOR EXECUTE STATEMENT SQLAUX INTO :CAMPO1, :CAMPO2, :CAMPO3, :CAMPO4 DO
SUSPEND;
  ELSE
  IF (NUMCAMPOS = 5) THEN
    FOR EXECUTE STATEMENT SQLAUX INTO :CAMPO1, :CAMPO2, :CAMPO3, :CAMPO4,
:CAMPO5 DO SUSPEND;
END

Você passa o nome da tabela, o nº de campos e o filtro.


Jorge Luis Bublitz
Analista Desenvolvedor
Chefe da Seção de Análise e Desenvolvimento – SAD

"No que diz respeito ao empenho, ao compromisso, ao esforço, à dedicação,
não existe meio termo. Ou você faz uma coisa bem feita ou não faz." 
Ayrton Senna da Silva
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Jorge Luis Bublitz
Enviada em: sexta-feira, 15 de setembro de 2006 08:57
Para: 'FireBase'
Assunto: RES: [firebase-br] Procedure Selecionável: executar SQL e retornar
recordset

Danilo,

Honestamente falando: não entendi pq fazer isso.
Select * from MinhaProcedure('select codigo, descricao from tabela')

Pq não fazer direto "select codigo, descricao from tabela" ??

Acho que é redundante. De repente vc poderia explicar melhor, ok??

Jorge Luis Bublitz
Analista Desenvolvedor

"No que diz respeito ao empenho, ao compromisso, ao esforço, à dedicação,
não existe meio termo. Ou você faz uma coisa bem feita ou não faz." 
Ayrton Senna da Silva
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Danilo Rogério
Enviada em: sexta-feira, 15 de setembro de 2006 08:41
Para: ListaFirebase
Assunto: [firebase-br] Procedure Selecionável: executar SQL e retornar
recordset

Pessoal, gostaria de saber se é possível eu estar criando uma stored
procedure com o seguinte objetivo:
   
  Passar um parametro de entrada como string(um select, por exemplo),
executá-lo e retornar as colunas deste... porém o problema é o parametro de
retorno... existe algum jeito de declarar um parametro do tipo "recordset",
ou seja... não declarar quais colunas eu quero retornar...
   
  Ex... 
  Select * from MinhaProcedure('select codigo, descricao from tabela') ou
ainda
   
  Select * from MinhaProcedure('select nome, endereco from outra_tabela')...
   
  Obrigado,
  Danilo  

 		
---------------------------------
 Yahoo! Search
 Música para ver e ouvir: You're Beautiful, do James Blunt
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.12.3/447 - Release Date: 9/13/aaaa


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.12.3/447 - Release Date: 9/13/aaaa






Mais detalhes sobre a lista de discussão lista