[firebase-br] Rotina no banco para Ler Arquivo Texto

samuel ferreira samuel.peres.ferreira em gmail.com
Sáb Out 8 17:42:39 -03 2005


ola
 eu leio e gravo arquivos textos usando readln e writeln (no delphi). usando
como tabela externa tem ganho de perfomance?


 Em 08/10/05, Felipe Giotto <felipe em metasoftware.com.br> escreveu:
>
> Olá, Mr.Mothman...
>
> Eu também me interessei por esse comando, mas pelo menos no meu caso,
> com Windows, já havia tentado rodá-lo diversas vezes e nunca consegui,
> muito menos dessa vez!! Todas as vezes recebo esta mensagem:
>
> Access to external file "C:\EXEMPLO.TXT" is denied by server administrator
>
> Já tentei copiar o meu arquivo em todas as pastas possíveis!! Na raiz,
> na pasta Windows, na pasta do Firebird... Você sabe aonde eu posso
> copiar esse arquivo de uma forma que ele possa ser acessado? Talvez o
> problema seja nos arquivos de configuração do FB, não sei, sou
> totalmente leigo nesse assunto, mestre!! :D
>
> Desde já agradeço,
>
> Felipe Giotto ;-)
>
>
>
>
> Mr.Mothman wrote:
>
> >Caro Marco Aurélio,
> >
> > Uma UDF não...
> >
> > Porém você pode, assim como no Oracle, fazer uso de uma tabela de
> >referência externa...
> >
> > Exemplo?
> >
> > Imagine que você tenha uma tabela com a estrutura abaixo:
> >
> > TIPO CHAR (5)
> > DESC VARCHAR (10)
> > CEP VARCHAR(8)
> > UF CHAR (2)
> >
> > Para importar dados para esta tabela, você precisaria de:
> >
> > 1) um arquivo com registros de tamanho fixo seguindo os tamanhos
> >propostos acima;
> > 2) uma tabela externa com campos de tamanho fixo seguindo os
> >tamanhos propostos acima (no firebird 1.5 é necessário informar os
> >paths dos arquivos externos. Vide arquivo firebird.conf no Linux. O
> >arquivo texto acima deverá estar neste path antes de se criar a
> >tabela.)
> > 3) uma query para inserir dados na tabela destino interna os dados
> >da tabela origem externa, com os devidos type castings.
> >
> > Observação: geralmente, todo registro num arquivo texto possui um
> >finalizador de linha... No Windows este finalizador são os caracteres
> >CR + LF (chr (13) + chr (10), carriage return + line feed, Enter +
> >salto de linha). No Linux (o arquivo que está em anexo foi criado no
> >Linux...) o finalizador de linha é o caracter Line Feed. Portanto, o
> >último campo de sua tabela deverá ser um campo para comportar estes
> >finalizadores.
> >
> > Vamos botar a mão na massa:
> >
> > 1) Configure seu Firebird para poder acessar o arquivo texto em
> >anexo numa pasta qualquer e grave o arquivo que segue anexo nesta
> >pasta;
> > 2) crie a tabela proposta acima;
> > 3) crie a tabela externa seguint a sintaxe abaixo:
> >
> > CREATE TABLE TESTE_EXT EXTERNAL '<PATH>/exemplo.txt'
> > (
> > TIPO CHAR (5),
> > DESC CHAR (10),
> > CEP CHAR(8),
> > UF CHAR (2),
> > NEWLINE CHAR (1)
> > );
> >
> > Pronto. Neste ponto, caso você execute um select na tabela
> >TESTE_EXT, os dados que existem no arquivo exemplo.txt serão listados
> >e podem ser incluídos numa boa em outra tabela (na nossa tabela
> >interna de exemplo...).
> >
> > Caso seja de interesse geral, posso escrever um artigo sobre este
> >tema, inclusive com exemplos mais elaborados e com configurações para
> >o Firebird Linux e Windows, porém o exemplo acima já é utilizável.
> >
> > Aguardo um feedback da comunidade.
> >
> > [ ]´s
> >
> > Mr.Mothman
> >
> >
> >------------------------------------------------------------------------
> >
> >NOVOACIDADE DEF04001001SP
> >NOVOBCIDADE NEW04501003SP
> >NOVOCCIDADE VEL01521022SP
> >NOVODCIDADE 01555032SP
> >NOVOECIDADE RJ 21001001RJ
> >NOVOFCIDADE 11111111
> > NADA MESMO22222222
> >NADA EM BRANCO 00000000AA
> >
> >
> >------------------------------------------------------------------------
> >
> >______________________________________________
> >FireBase-BR (www.firebase.com.br <http://www.firebase.com.br>) -
> Hospedado em www.bavs.com.br <http://www.bavs.com.br>
> >Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br <http://www.firebase.com.br>) - Hospedado
> em www.bavs.com.br <http://www.bavs.com.br>
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista