[firebase-br] EXECUTE BLOCK

Sandro Souza escovadordebits em gmail.com
Ter Mar 13 20:45:36 -03 2012


Bom dia/tarde Mário.

Nobre amigo, você poderia testar o seguinte código:

SET TERM # ;

EXECUTE BLOCK AS
DECLARE S VARCHAR(255);
DECLARE N INTEGER = 100000;
BEGIN
 -- Normal PSQL string assignment of <query_text>
 S = 'INSERT INTO TTT VALUES(';
 WHILE (N > 0) DO
 BEGIN
   -- Each loop execution applies both the string value and the values to
be bound to the input parameters.
   EXECUTE STATEMENT(S || CURRENT_TRANSACTION || ',' || CURRENT_CONNECTION
|| ',' || CURRENT_TRANSACTION || ')');
   N = N - 1;
 END
END#

SET TERM ; #

Ou ainda:

SET TERM # ;

EXECUTE BLOCK AS
DECLARE N INTEGER = 100000;
BEGIN
 WHILE (N > 0) DO
 BEGIN
   INSERT INTO TTT
VALUES(CURRENT_TRANSACTION,CURRENT_CONNECTION,CURRENT_TRANSACTION);
   N = N - 1;
 END
END#

SET TERM ; #

O código original foi extraído da "documentação"? Tem certeza que foi da
documentação do Firebird?
O tipo inteiro INT é utilizado por outros SGBDs (M$$$ SQL Server, mySQL,
...), não pelo Firebird, que eu saiba.

Espero ter ajudado mais que atrapalhado. :D

Em 13 de março de 2012 17:20, Mário Reis <mariodosreyx em gmail.com> escreveu:
>
> Alguém sabe me dizer como se usa os "Execute Block":
>
> Executei o exemplo abaixo:
>
> EXECUTE BLOCK AS
> DECLARE S VARCHAR(255);
> DECLARE N INT = 100000;
> BEGIN
> /* Normal PSQL string assignment of <query_text> */
> S = 'INSERT INTO TTT VALUES (:a, :b, :a)';
> WHILE (N > 0) DO
> BEGIN
> /* Each loop execution applies both the string value
> and the values to be bound to the input parameters */
> EXECUTE STATEMENT (:S) (a := CURRENT_TRANSACTION, b := CURRENT_CONNECTION)
> WITH COMMON TRANSACTION;
> N = N - 1;
> END
> END
>
> tirei o exemplo da da documentação, mas não faço a menor ideia de como
funciona
> como chamo do meu programa já que não se pode usar dentro de uma Store
> Procedure(pelo menos eu não consegui) então como faço?
> Alguém me ajuda? 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