[firebase-br] PROCEDURE Nome da Tabela como passagem de parametro.

//---- Kelsie.Z.Marshall ----// kelsie.z.marshall em gmail.com
Qua Set 2 19:18:20 -03 2009


Até consegui algo em uma consulta simples

-----------------------
declare variable cmds varchar(249);
begin

cmds = 'select * from ' || TABLE_NAME;
for execute statement :cmds into :var1 do
    suspend;
end
--------------------------


Mas complica quando quero fazer na procedure...não consigo colocar o update

FIXA

DECLARE VARIABLE T_CAMPO INTEGER;

begin
  for
    select TAB.NUMERO
    from TAB
    into :T_CAMPO
  do
  begin
    if( T_CAMPO = 'N.I.' ) then
    begin
      update TAB
      set  TAB.NUMERO = NULL
      where TAB.NUMERO = :T_CAMPO;
    end
  end
end

--------------------------








GENERICA com psaagem de parametro no nome da tabela




Este código abaixo não funciona
DECLARE VARIABLE T_CAMPO varchar(1000);
begin

 for execute statement
 'select ' || CAMPO  || ' from ' || TABLE_NAME into :T_CAMPO
 do
 begin
     if( T_CAMPO = 'N.I.' ) then
     begin
       for execute statement
        'update ' || TABLE_NAME || ' set ' || TABLE_NAME || '.' || T_CAMPO 
|| ' =NULL' || 'WHERE ' || TABLE_NAME || '.' || T_CAMPO || '= :' || T_CAMPO 
|| ';'
       do
     end
 end
 suspend;

end


--------------------------





"//---- Kelsie.Z.Marshall ----//" 
<kelsie.z.marshall em gmail.com> wrote in message 
news:h7mmib$mrg$1 em ger.gmane.org...
Já li no language reference e em vários exemplos  na internet tudo pareçe
correto mas está dando erro.

Quero fazer uma simples procedure onde passo o nome da tabela como
parametro.

SET TERM  ^^ ;
CREATE PROCEDURE TESTE (
  TABLE_NAME VarChar(254))
AS
begin

  execute STATEMENT 'SELECT * FROM ' || TABLE_NAME ;

end
 ^^
SET TERM ;  ^^







ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -902
Wrong request type in EXECUTE STATEMENT 'SELECT * FROM A_TAB1'
At procedure 'TESTE' line: 5, col: 3



______________________________________________
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