Exportar tabela MySQL para Txt
Olá pessoal,
Como faço para exportar uma tabela MySQL para arquivo Texto, tendo como [b:5d0163c663]delimitador de campo o ponto-e-vírgula[/b:5d0163c663] (;), por exemplo:
Ilano;Masculino;Centec sede;Fortaleza;CE
Onde, os campos seriam, respectivamente, Nome, Sexo, Unidade, Cidade e Estado.
Grato,
Ilano.
Como faço para exportar uma tabela MySQL para arquivo Texto, tendo como [b:5d0163c663]delimitador de campo o ponto-e-vírgula[/b:5d0163c663] (;), por exemplo:
Ilano;Masculino;Centec sede;Fortaleza;CE
Onde, os campos seriam, respectivamente, Nome, Sexo, Unidade, Cidade e Estado.
Grato,
Ilano.
Ilanocf
Curtidas 0
Respostas
Eselvati
17/09/2004
faca o seguinte
select listadecampos into outfile ´c:/arquivo.txt´ fields terminated by ´;´ from suatabela
note q este comando deve ser rodado no servidor, nao se preocupe com a barra ao contrario, pois é assim mesmo.
Ederson
select listadecampos into outfile ´c:/arquivo.txt´ fields terminated by ´;´ from suatabela
note q este comando deve ser rodado no servidor, nao se preocupe com a barra ao contrario, pois é assim mesmo.
Ederson
GOSTEI 0
Ilanocf
17/09/2004
Seria isso:
With DMConsultas.Disciplinas Do
Begin
Close;
SQL.Clear;
SQL.Add(´TB_Disciplinas.CodigoDaDisciplina, TB_Disciplinas.CodigoDoCurso, TB_Disciplinas.NomeDaDisciplina, TB_Disciplinas.Semestre´);
SQL.Add(´INTO OUTFILE ´C:\Avaliacao\Planilhas\Disciplinas.txt´ FIELDS Terminated by ´;´´);
SQL.Add(´FROM TB_Disciplinas´);
Open;
End;
GOSTEI 0
Ilanocf
17/09/2004
:shock:
GOSTEI 0
Eselvati
17/09/2004
Este seria o comando.
Close;
SQL.Clear;
SQL.Add(´[b:8e06198115]Select[/b:8e06198115] TB_Disciplinas.CodigoDaDisciplina, TB_Disciplinas.CodigoDoCurso, TB_Disciplinas.NomeDaDisciplina, TB_Disciplinas.Semestre´);
SQL.Add(´INTO OUTFILE ´[b:8e06198115]C:/Avaliacao/Planilhas/Disciplinas.txt[/b:8e06198115]´ FIELDS Terminated by ´;´´);
SQL.Add(´FROM TB_Disciplinas´);
Open;
Close;
SQL.Clear;
SQL.Add(´[b:8e06198115]Select[/b:8e06198115] TB_Disciplinas.CodigoDaDisciplina, TB_Disciplinas.CodigoDoCurso, TB_Disciplinas.NomeDaDisciplina, TB_Disciplinas.Semestre´);
SQL.Add(´INTO OUTFILE ´[b:8e06198115]C:/Avaliacao/Planilhas/Disciplinas.txt[/b:8e06198115]´ FIELDS Terminated by ´;´´);
SQL.Add(´FROM TB_Disciplinas´);
Open;
GOSTEI 0
Ilanocf
17/09/2004
Surgiu a mensagem:
Como posso resolver isto?
Can´t create/write to file ´C:\Avaliacao\Planilhas\Disciplinas.txt´ (Errcode: 2)
Como posso resolver isto?
GOSTEI 0
Ilanocf
17/09/2004
Consegui fazendo assim:
Mas, será q não ficaria lento se forem vários registros?
Se não for pedir demais, como faria para jogar estes dados na tabela, pelo Delphi?
With DMConsultas.Avaliacoes Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM TB_Avaliacao´);
SQL.Add(´ORDER BY CodigoDaAvaliacao´);
Open;
End;
Lista.Lines.Clear;
Lista.Lines.Add(& #39;CodigoDaAvaliacao;DataDaAvaliacao;AnoDaAvaliacao;CodigoDoCurso;CodigoDoProfe
ssor;CodigoDaDisciplina;NomeDoCurso;NomeDoProfessor;NomeDaDisciplina;NomeDaUnida
de;Semestre;DigitadoPor;AlteradoPor´);
While not(DMConsultas.Avaliacoes.eof) do
Begin
Lista.Lines.Add(FormatFloat(´,,000´, DMConsultas.AvaliacoesCodigoDaAvaliacao.AsInteger) + ´;´ + DMConsultas.AvaliacoesDataDaAvaliacao.AsString + ´;´ + DMConsultas.AvaliacoesAnoDaAvaliacao.Text + ´;´ + DMConsultas.AvaliacoesCodigoDoCurso.AsString + ´;´ + DMConsultas.AvaliacoesCodigoDoProfessor.AsString + ´;´ + DMConsultas.AvaliacoesCodigoDaDisciplina.AsString + ´;´ + DMConsultas.AvaliacoesNomeDoCurso.AsString + ´;´ + DMConsultas.AvaliacoesNomeDoProfessor.AsString + ´;´ + DMConsultas.AvaliacoesNomeDaDisciplina.AsString + ´;´ + DMConsultas.AvaliacoesNomeDaUnidade.AsString + ´;´ + DMConsultas.AvaliacoesNomeDaUnidade.AsString + ´;´ + DMConsultas.AvaliacoesSemestre.AsString + ´;´ + DMConsultas.AvaliacoesDigitadoPor.AsString + ´;´ + DMConsultas.AvaliacoesAlteradoPor.AsString);
DMConsultas.Avaliacoes.Next;
End;
Lista.Lines.SaveToFile(´C:\Avaliacao\Planilhas\Avaliações_´ + FormatDateTime(´dd´, StrToDate(DateToStr(Date))) + ´_´ + FormatDateTime(´mmm´, StrToDate(DateToStr(Date))) + ´_´ + FormatDateTime(´yyyy´, StrToDate(DateToStr(Date))) + ´.txt´);
Mas, será q não ficaria lento se forem vários registros?
Se não for pedir demais, como faria para jogar estes dados na tabela, pelo Delphi?
GOSTEI 0
Alex Maia
17/09/2004
Tente usar os seguintes códigos:
//Realiza manutenção no banco de dados
ShellExecute(0,nil, Pchar(´C:\bin\mysqlcheck´),PChar(´-r nome_banco ´), nil, sw_show);
//Realiza o dump das tabelas
ShellExecute(0,nil,Pchar(´C:\bin\mysqldump´),PChar(´--tab=C:\ -q -t nome_banco), nil, sw_show);
//Rotinas para importação dos dados
ShellExecute(0,nil,Pchar(´C:\bin\mysqlimport´),PChar(´-d nome_banco local_arquivo\nome_tabela.txt´), nil, sw_show);
//Realiza manutenção no banco de dados
ShellExecute(0,nil, Pchar(´C:\bin\mysqlcheck´),PChar(´-r nome_banco ´), nil, sw_show);
//Realiza o dump das tabelas
ShellExecute(0,nil,Pchar(´C:\bin\mysqldump´),PChar(´--tab=C:\ -q -t nome_banco), nil, sw_show);
//Rotinas para importação dos dados
ShellExecute(0,nil,Pchar(´C:\bin\mysqlimport´),PChar(´-d nome_banco local_arquivo\nome_tabela.txt´), nil, sw_show);
GOSTEI 0
Ilanocf
17/09/2004
//Rotinas para importação dos dados
ShellExecute(0,nil,Pchar(´C:\bin\mysqlimport´),PChar(´-d nome_banco local_arquivo\nome_tabela.txt´), nil, sw_show);
No caso do meu arquivo texto, os campos estão separados por [b:ab19f23427]ponto-e-vírgula[/b:ab19f23427], a rotina acima terá como importar sem problemas?
//Realiza o dump das tabelas
ShellExecute(0,nil,Pchar(´C:\bin\mysqldump´),PChar(´--tab=C:\ -q -t nome_banco), nil, sw_show);
Desculpe minha ignorância, mas o q vem a ser o [b:ab19f23427]Dump[/b:ab19f23427], qual sua importância?
GOSTEI 0
Eselvati
17/09/2004
Amigo, a mensagem q vc recebeu quer dizer q ele nao conseguiu gravar o arquivo no local informado.
os melhores comandos do mysql para se trabalhar com textos é o select into outfile e load data infile, são extremamente velozes e fáceis de manipular.
lembre-se para executar este comando vc deve estar no servidor, na maquina onde a base do mysql está instalado, através dos clientes não é possivel, a nao ser q a opção local-infile esteja habilitada no arquivo de configuração c:\my.cnf de cada estação ai a clausula local deve estar informada no comando.
em minhas aplicações consigo importar, exportar 100000 registros mole-mole com estes comandos.
//para exportar
select * into outfile ´c:/clientes.txt´ fields terminated by ´;´ from clientes
//para importar
load data infile ´c:/clientes.txt´ into table clientes2 fields terminated by ´;´
estes comandos são supervelozes, sem comparação com qquer outro disponível.
veja mais em http://www.mysql.com e procure por load data infile e select into outfile
Ederson
Digimaq Registradoras e Sistemas Ltda.
os melhores comandos do mysql para se trabalhar com textos é o select into outfile e load data infile, são extremamente velozes e fáceis de manipular.
lembre-se para executar este comando vc deve estar no servidor, na maquina onde a base do mysql está instalado, através dos clientes não é possivel, a nao ser q a opção local-infile esteja habilitada no arquivo de configuração c:\my.cnf de cada estação ai a clausula local deve estar informada no comando.
em minhas aplicações consigo importar, exportar 100000 registros mole-mole com estes comandos.
//para exportar
select * into outfile ´c:/clientes.txt´ fields terminated by ´;´ from clientes
//para importar
load data infile ´c:/clientes.txt´ into table clientes2 fields terminated by ´;´
estes comandos são supervelozes, sem comparação com qquer outro disponível.
veja mais em http://www.mysql.com e procure por load data infile e select into outfile
Ederson
Digimaq Registradoras e Sistemas Ltda.
GOSTEI 0