Você está na página 1de 2

Determinando o total de registros do BD http://www.firebase.com.br/fb/artigo.php?

id=1129

Usuários: 35519
Artigos: 162
Dicas: 107
Downloads: 250
23.09.08

Determinando o total de registros do BD


Um das grandes facilidades implementadas no Firebird 1.5 é a execução de comandos SQL dinâmicos (DSQL). O exemplo a seguir
nos dá uma boa noção das grandes possibilidades para desenvolvimento de procedimentos dinâmicos e inteligentes. A procedure
apresentada analisa as tabelas de sistema do banco de dados, extraindo o nome das tabelas existentes no BD, e gerando um SQL
dinâmico que "conta" o número de registros existentes em cada tabela, totalizando no final o número de registros total do Banco
de Dados.

CREATE PROCEDURE SOMAREGISTROS


RETURNS (
TABELA VARCHAR(31),
QTD_REG INTEGER)
AS
declare variable comando varchar(100);
declare variable qtdtot integer;
declare variable qtdtab integer;
begin
qtdtot = 0;
qtdetab = 0;

for select rdb$relation_name


from rdb$relations
where rdb$flags = 1 and rdb$view_blr is null
order by 1
into :tabela do
begin
qtdtab = qtdtab + 1;
comando = 'select count(*) from ' || :tabela;
execute statement :comando into :qtd_reg;
qtdtot = :qtdtot + :qtd_reg;
suspend;

1 de 2 23/09/2008 14:56
Determinando o total de registros do BD http://www.firebase.com.br/fb/artigo.php?id=1129

end
tabela = :qtdtab || ' Tabelas - Total:';
qtd_reg = :qtdtot;
suspend;
end

Podemos observar que basta declarar uma variável que será usada para armazenar o comando Sql, atribuir a string de comando
através da
concatenação de informações dinâmicas (comando = 'select count(*) from ' || :tabela;) e executar o comando com execute
statement.

Grande parte do desenvolvimento de soluções pode ser simplificado com a criação de procedimentos dinâmicos, basta uma boa
imaginação e planejamento para evitar a "criação de monstros".

Esta procedure pode ser muito útil para aqueles que desejam enviar corretamente o número de registros de seu banco de dados
para a lista de
empresas que utilizam Firebird. (www.firebase.com.br/cgi-bin/firebase.cgi/empresas)

Autor:
Márcio Henrique da Silva <mhenriquedasilva_at_ig.com.br>
Chefe de TI - Lojas Edmil
Eloi Mendes - MG

Avalie esse artigo/dica:

Comentários

Não há comentários para esse item...

Atenção! Não poste dúvidas nos comentários. Para obter suporte, use a lista de discussão da FireBase.

Copyright (C) Carlos H. Cantu - É proibida a reprodução de qualquer material desse site sem autorização prévia

2 de 2 23/09/2008 14:56