Logo Hardware.com.br
Lucio Campetti
Lucio Campet... Membro Junior Registrado
92 Mensagens 0 Curtidas

Firebird - Exportar/Importar registros em arquivo .txt

#1 Por Lucio Campet... 23/04/2013 - 11:22
Bom dia.

Tenho uma tabela com 100 registros (Ex: 100 produtos cadastrados) cadastrados, gostaria de saber se e possivel criar uma rotina em delphi 7 para que eu exporte/importe os registros da tabela para um arquivo txt, tipo realizar uma copia de seguranca.

Vamos supor que tenha registrado na tabela:
os numeros se referem a quantidade

fone de ouvido 10
caixas de som 08
mouse 03
teclado 09

Quero exportar para um arquivo.txt esses dados, para que depis eu possa importar os registros.

Aguardo ajuda.
Obrigado.
TerraSkilll
TerraSkilll Zumbi Moderador
4K Mensagens 1.2K Curtidas
#2 Por TerraSkilll
23/04/2013 - 13:19
É possível sim, basta você carregar os dados, iterá-los (com um while por exemplo) e gravar em um arquivo txt. A estrutura ficaria parecida com a abaixo:

procedure TForm1.gravarTxt();
var
txt : TextFile;
i : integer;
begin
AssignFile(txt, ExtractFilePath(ParamStr(0)) + 'bkp.txt');

Rewrite (txt);

// Minhatabela é um objeto Table qualquer, como um TTable, TSimpleDataSet, etc
MinhaTabela.First;
while not MinhaTabela.Eof do
begin
for i := 0 to MinhaTabela.Fields.Count - 1 do
write(txt, MinhaTabela.Fields[i].AsString + '|');

writeln(txt, ''); // quebra a linha

MinhaTabela.Next;
end;

CloseFile(txt);
end;


Você tem que definir como vai separar os valores dos campos (no meu exemplo, são separados por pipes "|"). Também podem ser necessárias algumas conversões de tipos (float, integer, Bcd).

Particularmente, não recomendo esse método. Se o objetivo é tão somente backup/restore, é muito mais confiável utilizar o gbak, ferramenta do próprio firebird para realizar backups.

Abraço.
Contribua para um fórum melhor: pense antes de postar.
"It isn't a contest. Just enjoy the ride." -> Seth Vidal
Hardware.com.br no Youtube!
Lucio Campetti
Lucio Campet... Membro Junior Registrado
92 Mensagens 0 Curtidas
#3 Por Lucio Campet...
24/04/2013 - 01:47
TerraSkilll disse:
É possível sim, basta você carregar os dados, iterá-los (com um while por exemplo) e gravar em um arquivo txt. A estrutura ficaria parecida com a abaixo:

procedure TForm1.gravarTxt();
var
txt : TextFile;
i : integer;
begin
AssignFile(txt, ExtractFilePath(ParamStr(0)) + 'bkp.txt');

Rewrite (txt);

// Minhatabela é um objeto Table qualquer, como um TTable, TSimpleDataSet, etc
MinhaTabela.First;
while not MinhaTabela.Eof do
begin
for i := 0 to MinhaTabela.Fields.Count - 1 do
write(txt, MinhaTabela.Fields[i].AsString + '|');

writeln(txt, ''); // quebra a linha

MinhaTabela.Next;
end;

CloseFile(txt);
end;
Você tem que definir como vai separar os valores dos campos (no meu exemplo, são separados por pipes "|"). Também podem ser necessárias algumas conversões de tipos (float, integer, Bcd).

Particularmente, não recomendo esse método. Se o objetivo é tão somente backup/restore, é muito mais confiável utilizar o gbak, ferramenta do próprio firebird para realizar backups.

Abraço.




Blz, TerraSkill,

Como utilizaria esta ferramenta do proprio banco de dados?
O gbak tem como utilizar de forma grafica para facilitar a vida do usuario final? Como posso implementar no delphi 7?
Usando esta ferramenta (gbak) ele salva os registros da tabela para uma posterior restauracao? Aguardo resposta. Obrigado.
TerraSkilll
TerraSkilll Zumbi Moderador
4K Mensagens 1.2K Curtidas
#4 Por TerraSkilll
24/04/2013 - 08:39
O gbak é o programa de backup e restore do próprio Firebird, e já vem com a instalação do Firebird. Ele pode ser usado tanto individualmente (via linha de comando) quanto ser chamado por um outro programa (usando o delphi, você pode executá-lo com ShellExecute ou mesmo WinExec). Veja:
http://www.devmedia.com.br/utilizando-o-gbak-do-firebird-para-efetuar-backup-restore/4877
http://firebirdpt.wordpress.com/2008/06/28/backup-e-restore-com-gbak-em-linha-de-comando/
http://www.firebirdsql.org/manual/gbak.html

Também há componentes no Delphi 7 para fazer o backup da base. Veja alguns exemplos:
http://www.planetadelphi.com.br/download/4818/function.mysql-connect
http://www.planetadelphi.com.br/download/4730/arquivo/backup-do-firebird-compactado-com-zlib,-por-e-mail.
http://www.fabricio.pro.br/default.asp?id=1&ACT=5&content=80&mnu=1

Abraço.
Contribua para um fórum melhor: pense antes de postar.
"It isn't a contest. Just enjoy the ride." -> Seth Vidal
Hardware.com.br no Youtube!
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal