[firebase-br] Procedure Exportando Arquivo Texto

W O sistemas2000profesional em gmail.com
Sex Out 19 18:25:40 -03 2012


¡¡¡Wow!!!

Sandro, excelente explicación, muchas gracias.

Saludos.

Walter.



2012/10/17 Sandro Souza <escovadordebits em gmail.com>

> Bom dia/tarde/noite Frederico.
>
> Primeiro, você deve habilitar o acesso do Firebird à arquivos externos às
> suas bases de dados.
>
> Para isso, edite o arquivo "firebird.conf", e localize a variável/parâmetro
> "ExternalFileAccess".
>
> Se houver um caracter "#" no início da linha, remova-o, pois esse caracter
> comenta todo o restante da linha.
>
> Esse parâmetro "ExternalFileAccess" controla o acesso aos arquivos externos
> às suas bases de dados. E pode ter 3 tipos de acesso. São eles:
>
> 1 - Sem acesso a qualquer arquivo externo.
>
> Nessa situação, o Firebird não permitirá o acesso a qualquer arquivo
> externo à sua base de dados.
>
> Exemplo: ExternalFileAccess=None
>
> 2 - Acesso restrito aos arquivos de determinadas pastas/diretórios.
>
> Nessa situação, o Firebird só permitirá o acesso a qualquer arquivo que
> esteja em alguma das pastas/diretórios informadas (separe-as com
> ponto-e-vírgula).
>
> Exemplo: ExternalFileAccess=C:\Meus
> Arquivos;D:\Sistemas\XYZ\Dados\Exportação
>
> 3 - Acesso completo a qualquer arquivo de qualquer pasta/diretório.
>
> Nessa situação, o Firebird não fará qualquer restrição de acesso, lembrando
> que a restrição será efetuada apenas pelos direitos do usuário que o
> Firebird está utilizando para executar (system, administrador, fulano,
> beltrano, etc...).
>
> Exemplo: ExternalFileAccess=Full
>
> Vamos supor que você escolheu o acesso completo (Full). Agora vamos criar
> uma tabela de exemplo, de onde vamos ler os registros e exportá-los
> diretamente para um arquivo texto.
>
> *CREATE TABLE FUNCIONARIOS(
>   -- Chave primária.
>   CODIGO INTEGER NOT NULL,
>   -- Nome completo.
>   NOME VARCHAR(200) CHARACTER SET ISO8859_1 NOT NULL COLLATE PT_BR,
>   -- CPF sem máscara.
>   CPF VARCHAR(11) CHARACTER SET ISO8859_1 NOT NULL COLLATE PT_BR,
>   -- Regra da chave primária.
>   CONSTRAINT PK_FUNCIONARIOS PRIMARY KEY(CODIGO),
>   -- Regra de unicidade do CPF (permite homônimos, mas não funcionários com
> o mesmo CPF).
>   CONSTRAINT UK_FUNCIONARIOS_CPF UNIQUE(CPF));*
>
> Vamos supor que você já inseriu dados na tabela FUNCIONARIOS. Agora a
> missão é exportar esses dados para o arquivo texto
> "C:\Temp\Funcionarios.txt".
>
> Vamos criar uma tabela que residirá no arquivo externo
> "C:\Temp\Funcionarios.txt", ou seja, essa nova tabela será o próprio
> arquivo texto a ser gerado. Como se trata de um arquivo texto, utilizaremos
> apenas colunas/campos do tipo CHAR, pois os outros tipos resultarão em
> dados binários.
>
> *CREATE TABLE EXPORTACAO EXTERNAL FILE 'C:\Temp\Funcionarios.txt' (
>   -- Nome completo do funcionário.
>   NOME CHAR(200) CHARACTER SET ISO8859_1 NOT NULL COLLATE PT_BR,
>   -- CPF do funcionário.
>   CPF VARCHAR(11) CHARACTER SET ISO8859_1 NOT NULL COLLATE PT_BR,
>   -- Quebra de linha de texto (caracteres CR + LF = CHR(13) + CHR(10) no
> caso do MS Windows).
>   CRLF CHAR(2));*
>
> Nesse momento, o arquivo "C:\Temp\Funcionarios.txt" ainda não será criado,
> apenas quando começarmos a inserir os registros/linhas nessa tabela externa
> é que o arquivo será criado.
>
> Agora vamos exportar os dados, inclusive ordenando pelo nome dos
> funcionários.
>
> *INSERT INTO EXPORTACAO SELECT NOME,CPF FROM FUNCIONARIOS ORDER BY NOME;
> COMMIT;*
>
> O arquivo texto foi criado com sucesso, agora podemos excluir essa tabela
> externa, caso não precisemos mais dela.
>
> *DROP TABLE EXPORTACAO;*
>
> Nota: Excluindo a tabela externa não exclui também o respectivo arquivo.
> Então pode excluí-la sem problema algum.
>
> Esse é apenas um pequeno exemplo. Espero que lhe sirva para suprir as suas
> necessidades.
>
> Espero ter ajudado mais que atrapalhado. :D
>
> Em 17 de outubro de 2012 09:53, Frederico Godoi
> <frederico.godoi em gmail.com>escreveu:
>
> > Bom dia a todos.
> >
> > Alguém poderia me passar um pequeno exemplo de uma procedure direta do
> > Firebird, fazendo um SQL e escrevendo o resultado em um arquivo texto ?
> >
> > Obrigado
> >
> > --
> > Frederico Godoi
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista