tabela para arquivo texto...
04/09/2003
0
Preciso de alguma forma exportar os dados das tabelas antigas para as novas em MySQL.
Não sei se existe uma ferramenta que faça isso direto... se alguem souber...
O que me indicaram foi exportar (atrasves de codigo mesmo) o conteudo das tabelas para um arquivo texto e depois no MySQL-Front importar esse arquivo texto que precisa estar na seguinte estrutura:
------------
Campo1;Campo2;Campo3
Conteudo11;Conteudo12;Conteudo13
Conteudo21;Conteudo22;Conteudo23
Conteudo31;Conteudo32;Conteudo33
Conteudo41;Conteudo42;Conteudo43
.
.
.
-------------
Estou usando a função WriteLn pra copiar as strings pra um arquivo texto, mas ele não concatena (coloca um do lado do outro)... essa função coloca uma quebra de linha e já na linha dos campos fica:
------------
Campo1;
Campo2;
Campo3
.
.
.
-----------
Alguem tem uma luz pra isso ??
Ou com algum aplicativo que faça essa conversão (Paradoxx - MySQL ou Paradoxx - Arquivo Texto) ou saiba de alguma função melhor pra colocar strings em texto...
[]´s
Renato Mendes
Renato_mendes
Posts
05/09/2003
Mysys
ai voce entra no MySQL-Front e vai no menu im-/Export e depois em
ODBC Importa voce vai poder importar os dados direto do banco de dados
06/09/2003
Joelpa
depois de criares a tabela no Mysql
tenta la esta sena
tabela.First;
While not tabela.Eof do
begin
memo1.Lines.Add(´INSERT INTO distrito VALUES (´´+tabelacampo1.text+´´,´´+tabelacampo2.Text+´´);´);
tabela.Next;
end;
memo1.Lines.SaveToFile(diretorio+´distrito.txt´);
agora é so copiar o conteudo do ficheiro para o o Mysql Front fas um post
na Query e executa
Ok
09/09/2003
Renato_mendes
Ai vai o codigo, quem precisar e nao entender, me envia uma msg...
-----------------------
procedure TForm1.SpeedButton1Click(Sender: TObject);
var f : textfile;
sr : TSearchRec;
NomeTabela, msg : string;
cont, i : integer;
Linha : String;
begin
NomeTabela := Copy(Combobox1.Text, 1, Pos(´.´, Combobox1.Text) - 1); // pega o nome sem ´.db´
if NomeTabela = ´´ then exit;
Table1.TableName := Combobox1.Text;
AssignFile (f, ´C:\Diretorio\Tabelas\´ + NomeTabela + ´.txt´);
if FindFirst (´C:\Diretorio\Tabelas\´ + NomeTabela + ´.txt´, faAnyFile, sr) = 0 then
begin
{$I-}
Reset (f);
{$I+}
IOResult;
end else
ReWrite (f);
Table1.Open;
cont := Table1.FieldCount - 1;
Append (f);
Linha := ´´;
for i := 0 to cont - 1 do
begin
Linha := Linha + Table1.Fields[i].FullName + ´;´;
end;
Linha := Linha + Table1.Fields[i].FullName; // ultimo nao tem ´;´
WriteLn (f, Linha); // escreve a linha com nome dos campos no arquivo
Table1.First;
while not Table1.Eof do
begin
Linha := ´´;
for i := 0 to cont - 1 do
begin
Linha := Linha + Table1.Fields[i].AsString + ´;´;
end;
Linha := Linha + Table1.Fields[i].AsString;
WriteLn (f, Linha); // o mesmo só que para os valores dos campos
table1.Next;
end;
Table1.Close;
CloseFile (f);
end;
----------------------------
Espero que ajude alguem, caso precisem...
[]´s
Renato Mendes
09/09/2003
Renato_mendes
Agora o problema ta sendo com a conversão TEXTO -> Tab. MySQL !!!
Estou usando o DBTools... faço tudo certinho... algumas tabelas fazem a conversão sem problemas... algumas não fazem e outras fazem conversão de parte da tabela... no final é gerado o aviso de que 300 registros foram lidos, mas 134 foram convertidos (exemplo).
Alguem sabe o que pode ser ?? Conferi os arquivos TXT e eles estão corretos.
Ou se alguem conhece alguma outra melhor para esta função.
[]´s
Renato Mendes
Clique aqui para fazer login e interagir na Comunidade :)