Fórum EXportar consulta SQL para arquivo #502010

21/11/2014

0

Boa Noite a todos!!

Estou com um projeto de integração de sistemas, na qual preciso realizar uma consulta sql e exportar estes dados para txt ou xml. Como o firebir não suporta xml sem problemas de utilizar txt.
Consegui realizar a exportação manualmente através da sintaxe a baixo:


output C:\\testeexportacao.txt;

SELECT sd.pront AS PRONTUARIO,
sd.reg AS REGISTRO,
rp.nome AS NOME,
rp.nasc AS NASCIMENTO,
rp.sexo AS SEXO,
sa.exame AS EXAME,
sa.data AS DATA,
sa.hora AS HORA

FROM sicadate AS sd INNER JOIN silanexa AS sa ON sd.id = sa.id_sicadate
LEFT JOIN ricadpac AS rp on sd.pront = rp.pront
WHERE sa.reg = 2394208;

output;

A questão é que preciso fazer de forma automática, ou seja sempre que for inserido dados em um tabela x, seja gerado este arquivo com
título aleatório, ficando sempre um arquivo para cada consulta. Tentei construir uma trigger amarrado nesta tabela mas não obtive sucesso.

Cheguei a ver em alguns forum a respeito do uso de tabela externa, mas ficou mei vago pra mim commo iria tratar para gerar estes arquivos.

Alguém poderia me ajudar por favor.

Desde já agradeço a atenção de todos!!!
Aleandro

Aleandro

Responder

Posts

22/11/2014

Ronaldo Lanhellas

Boa Noite a todos!!

Estou com um projeto de integração de sistemas, na qual preciso realizar uma consulta sql e exportar estes dados para txt ou xml. Como o firebir não suporta xml sem problemas de utilizar txt.
Consegui realizar a exportação manualmente através da sintaxe a baixo:


output C:\\testeexportacao.txt;

SELECT sd.pront AS PRONTUARIO,
sd.reg AS REGISTRO,
rp.nome AS NOME,
rp.nasc AS NASCIMENTO,
rp.sexo AS SEXO,
sa.exame AS EXAME,
sa.data AS DATA,
sa.hora AS HORA

FROM sicadate AS sd INNER JOIN silanexa AS sa ON sd.id = sa.id_sicadate
LEFT JOIN ricadpac AS rp on sd.pront = rp.pront
WHERE sa.reg = 2394208;

output;

A questão é que preciso fazer de forma automática, ou seja sempre que for inserido dados em um tabela x, seja gerado este arquivo com
título aleatório, ficando sempre um arquivo para cada consulta. Tentei construir uma trigger amarrado nesta tabela mas não obtive sucesso.

Cheguei a ver em alguns forum a respeito do uso de tabela externa, mas ficou mei vago pra mim commo iria tratar para gerar estes arquivos.

Alguém poderia me ajudar por favor.

Desde já agradeço a atenção de todos!!!


Sem dúvida a solução para isso é o uso de TRIGGER. Por que você não consegiu ? Qual o erro ?
Responder

Gostei + 0

22/11/2014

Aleandro

Boa Tarde Ronaldo, obrigado por ter respondido.
Me deparo com o seguinte erro a baixo:

[img]http://arquivo.devmedia.com.br/forum/imagem/398455-20141122-163931.png[/img]

Sabe dizer o que pode ser ?

Até mais!!
Responder

Gostei + 0

23/11/2014

Aleandro

Estive filtrando um pouco mais pra verificar o que estava ocasionando este erro, aparenta ser algo na sintaxe do comando output, veja:

[img]http://arquivo.devmedia.com.br/forum/imagem/398455-20141123-214403.png[/img]

Alguém sabe dizer o que ocorre?
Responder

Gostei + 0

23/11/2014

Aleandro

Estou desconfiado que não é possível utilizar o comando output e instrução SQL em uma triger se não for para uma estrutura de condição.

AS

declare variable caminho char(30);
declare variable nome_arquivo char(12);
declare variable extensao char(4);
declare variable ultimo_id integer;

BEGIN

caminho = 'C:\';
nome_arquivo = 'testeexportacao';
extensao = '.txt';

output caminho+arquivo+extensao;

SELECT sd.pront AS PRONTUARIO,
sd.reg AS REGISTRO,
rp.nome AS NOME,
rp.nasc AS NASCIMENTO,
rp.sexo AS SEXO,
sa.exame AS EXAME,
sa.data AS DATA,
sa.hora AS HORA

FROM sicadate AS sd INNER JOIN silanexa AS sa ON sd.id = sa.id_sicadate
LEFT JOIN ricadpac AS rp on sd.pront = rp.pront

WHERE sa.reg = (select reg from silanexa where id = (select max(id) from silanexa));

output;

END


Alguém já fez algo assim ?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar