determinando o total de registros em todas tabelas do banco de dados
TRANSCRIPT
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 seguirnos dá uma boa noção das grandes possibilidades para desenvolvimento de procedimentos dinâmicos e inteligentes. A procedureapresentada analisa as tabelas de sistema do banco de dados, extraindo o nome das tabelas existentes no BD, e gerando um SQLdinâmico que "conta" o número de registros existentes em cada tabela, totalizando no final o número de registros total do Bancode 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;
Usuários: 35519Artigos: 162Dicas: 107Downloads: 25023.09.08
Determinando o total de registros do BD http://www.firebase.com.br/fb/artigo.php?id=1129
1 de 2 23/09/2008 14:56
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 comandoatravés daconcatenação de informações dinâmicas (comando = 'select count(*) from ' || :tabela;) e executar o comando com executestatement.
Grande parte do desenvolvimento de soluções pode ser simplificado com a criação de procedimentos dinâmicos, basta uma boaimaginaçã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 dadospara a lista deempresas 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 EdmilEloi 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
Determinando o total de registros do BD http://www.firebase.com.br/fb/artigo.php?id=1129
2 de 2 23/09/2008 14:56