[firebase-br] Tabelas Temporárias

Sérgio E sergioernesto em uol.com.br
Seg Out 11 20:14:24 -03 2004


Uso o firebird, desde 98, naquela época ainda o interbase com o delphi
4, Tenho lido já a algum tempo que um recurso que faz muita falta no
firebird, são tabelas temporárias. Gostaria de perguntar a lista, o
realmente seriam essas tabelas e em quais casos seriam úteis...

Desde já obrigado,

Sérgio E.
sergioernesto em uol.com.br


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
Em nome de Ederson Selvati
Enviada em: segunda-feira, 11 de outubro de 2004 09:07
Para: Lista em firebase.com.br
Assunto: [firebase-br] RE: Mysql x Firebird

Caros colegas,


Uso o Firebird a 3 anos e nada tenho a reclamar dele, nunca tive uma
corrupção, perda de dados e etc. (tb nunca tive uma queda de
energia..:o)), mas o mysql tem me surpreendido bastante principalmente
com suas funções de facilidades, não somente se limitando aos selects,
inserts, updates básicos sem qquer recurso extra, o q no mysql é muito
bem trabalhado. Ao usar innodb as coisas foram bem facilitadas (na
versão 4.1 sub selects implementados, na versão 5.0 triggers, stored
procedures já implementados e funcionando), agora vamos dar nome aos
bois:

"selects, inserts, updates básicos sem qquer recurso extra"

select q automaticamente envia os dados para um txt formatado por
tabulações ou qquer tipo de separador de campo.

select * into outfile "c:/teste.txt" fields terminated by ";" optionally
enclosed by '"'
from produtos; //delimitado por ;

select id_produto,descricao into outfile "c:/teste.txt" fields
terminated by "\t" from produtos; //delimitado por tab

a outra parte agora tb é interessante

load data infile "c:/teste.txt" ignore into table produtos fields
terminated by "\t" (id_produto,descricao) //carrega os dados do txt
dentro da tabela de produtos, note q a opção ignore irá verificar quebra
de integridade na chave primária e caso ocorra, automaticamente o
registro é descartado, (muito útil em importações de arquivos de
terceiros) mas ai vem a pergunta, mas o mysql nao poderia fazer isso se
não a base de dados ficaria errada, ai entra outro detalhe a chave
replace q ao invés de ignorar, da um autoupdate no registro.

load data infile "c:/teste.txt" replace into table produtos fields
terminated by "\t" (id_produto,descricao)

ainda tem mais switches para os comandos (select .. for update with
lock, select .. for update)

caso alguem queira alguma informação extra sobre selects no mysql
consulte
http://dev.mysql.com/doc/mysql/pt/SELECT.html (em português)


existe tb o comando replace, q nada a tem a ver com o replace do dbase
("DBF com SQL")

replace registro_50 values
(:primaria,:cfop,:aliquota,:contabil,:basedecalculo,:imposto,:isentas,:o
utras);

caso a chave primaria exista, ele automaticamente da um autoupdate no
registro, caso contrário insere um novo.

algumas destas funcoes evitam um 
qry.close;
qry.sql.clear;
qry.sql.add('select * from tabela where chave=chave');
qry.open
if not qry.isempty then begin
   update registro...
else
  insere registro

dentro do delphi ou outra linguagem.

um outro comando interessante é o create temporary table if not exists
produtos (id_produto int not null auto_increment,descricao varchar(50),
primary key (id_produto))type=innodb;
ou seja, cria uma tabela temporaria q automaticamente será eliminada do
banco no final de uma conexão.

estas chaves de verificação em comandos DDL tb são interessantes, if
exists, if not exists e por ai vai.

gostaria q o firebird tivesse algumas funções/comandos parecidos com
estes implementados, criação de tabelas temporárias, o q viria e muito
facilitar nosso trabalho, caso haja uma oportunidade junto ao nosso
amigo e moderador Cantu, a indicação destas e algumas outras melhorias
no firebird junto a comunidade, seria de grande valia.


Um abraço a todos e "UP the Irons" (by Cantu)


Ederson
Digimaq Registradoras e Sistemas Ltda.


----- Original Message ----- 
From: "Carlos H. Cantu" <listas-jFiWHqB0Zt839yzSjRtAkw em public.gmane.org>
Newsgroups: gmane.comp.db.firebase.portuguese
Sent: Sunday, October 10, 2004 10:17 AM
Subject: Re: [firebase-br] Firebird x MySQL


> MySQL tem várias desvantagens:
> 
> -Falta muita coisa (procedures, triggers, integridade
referencial,etc).
> -Para ter alguns desses recursos, vc tem que optar pelo uso do InnoDB,
> SapDB, etc. que não são compatíveis entre si
> -Se precisar de backup online, terá que pagar um precinho salgado
> para comprar uma ferramenta  que faça isso, além de ser obrigado a
> usar o InnoDB
> 
> E por aí vai...
> 
> De uma olhada em http://bdn.borland.com/article/0,1410,32343,00.html
> 
> 
> []s
> Cantu
> http://www.warmboot.com.br
> FireBase - http://www.FireBase.com.br
> 
> TGdO> Bom dia amigos !
> 
> TGdO>     Muito se escuta falar, e muito se lê sobre estes dois
bancos. Conheço um
> TGdO> tanto de gente que usa um ou outro, e cada um puxa o peixe pro
seu lado, "q
> TGdO> o Firebird é mais rápido", "q o MySQL é mais seguro" e por ai
vai. A minha
> TGdO> esperiência com MySQL foi bem reduzida, digamos, microscópica,
já com o
> TGdO> Firebird venho trabalhando há cerca de 2 anos.
> 
> TGdO>     A questão é a seguinte. Qual dos dois é melhor ? Quais os
prós e contras
> TGdO> de cada um dentro de uma comparação ?
> 
> TGdO> Tiago Gouvêa de Oliveira
> 
> TGdO> MSN: tiagokrio
> TGdO> tiago+netkrio.com.br
> TGdO> (32)3218-1512 - (32)8808-0254
> TGdO> Krio Tecnologia & Desenvolvimento
> TGdO> Mega Sys Informática
> 
> 
> TGdO> ______________________________________________
> TGdO> FireBase-BR (www.firebase.com.br)
> TGdO> Para editar sua configuração na lista, use o endereço
> TGdO>
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br)
> Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
______________________________________________
FireBase-BR (www.firebase.com.br)
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br






Mais detalhes sobre a lista de discussão lista