determinando o total de registros em todas tabelas do banco de dados

2

Click here to load reader

Upload: euaepn

Post on 13-Jun-2015

557 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Determinando o total de registros em todas tabelas do banco de dados

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

Page 2: Determinando o total de registros em todas tabelas do banco de dados

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