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