[firebase-br] Execute Block

Matheus Guerra matheus.oliveira.guerra em gmail.com
Sex Set 16 14:17:19 -03 2016


Obrigado pela atenção Gladiston.

Sim o script funciona , a questão é que o execute block vai esta em
uma transação controlado por mim, o autonomous transaction vai separar
desta transação e gerar o commit, se eu quiser o rollback a transação
do autonomus transaction não vai ser desfeita.
Ex.:

Starttransaction;

EXECUTE BLOCK
AS
declare variable lsql varchar(4096)='';
BEGIN
  lsql='CREATE TABLE teste(c1 varchar(255), n1 integer);';
  execute statement :lsql with autonomous transaction;
  IN AUTONOMOUS TRANSACTION DO
  BEGIN
    execute statement 'insert into teste(c1, n1) values(''a'',1);';
    execute statement 'insert into teste(c1, n1) values(''b'',2);';
    execute statement 'insert into teste(c1, n1) values(''c'',3);';
  END;

rollback;

A tabela teste vai estar no BD.

Att,
  Matheus Guerra.

Em 16 de setembro de 2016 14:08, Gladiston Santana
<gladiston em vidy.com.br> escreveu:
> Testei aqui e funcionou.
> Agora coloquei de forma didática com duas semânticas diferentes para a
> mesma coisa afim de que pudesse compreender.
> Ex:
>
> SET TERM ^ ;
> EXECUTE BLOCK
> AS
> declare variable lsql varchar(4096)='';
> BEGIN
>   lsql='CREATE TABLE teste(c1 varchar(255), n1 integer);';
>   execute statement :lsql with autonomous transaction;
>   IN AUTONOMOUS TRANSACTION DO
>   BEGIN
>     execute statement 'insert into teste(c1, n1) values(''a'',1);';
>     execute statement 'insert into teste(c1, n1) values(''b'',2);';
>     execute statement 'insert into teste(c1, n1) values(''c'',3);';
>   END
> END ^
> SET TERM ; ^
>
> [] ´s
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html




Mais detalhes sobre a lista de discussão lista