[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