converter dbf do fox pro para firebird
tentei converter os dbf do fox pro para o firebird
usando o datapump
da a seguinte mensagem
could not find language driver
tem algum outro programa q eu consiga fazer isto
eu utilizei o full convert trial q encontrei na internet
mas ele só busca 50 registros da base de dados
se quiser tem que comprar
mas eu preciso só para um sistema e não tenho como comprar
té +
@br@ços
usando o datapump
da a seguinte mensagem
could not find language driver
tem algum outro programa q eu consiga fazer isto
eu utilizei o full convert trial q encontrei na internet
mas ele só busca 50 registros da base de dados
se quiser tem que comprar
mas eu preciso só para um sistema e não tenho como comprar
té +
@br@ços
Dhauch
Curtidas 0
Respostas
Aschaves
12/07/2006
Arquivos .DBF são faceis de converter para formato TXT, eu uso Clipper e converto-os para TXT com ´COPY TO NOMEDOARQ.TXT SDF´, acredito que no Fox-Pro tenha algo semelhante.
Isto gera um arquivo TXT com cada linha sendo um registro e formatado de acordo o tamanho dos campos.
Então é só fazer uma rotina em Delphi para ler o TXT do inicio ao fim, pegando os trechos de texto e convertendo-os para o formato apropriado.
Parece trabalhoso, mas te dá a liberdade de converter da forma que quiser, mudar (nome de campos, tamanho, Tipo etc...)
Segue abaixo em trecho de código para ler TXT:
ArqTxt: TextFile;
StrLinha : String;
Tem que fazer uma rotina dessa para cada tabela.
Espero que ajude!
Isto gera um arquivo TXT com cada linha sendo um registro e formatado de acordo o tamanho dos campos.
Então é só fazer uma rotina em Delphi para ler o TXT do inicio ao fim, pegando os trechos de texto e convertendo-os para o formato apropriado.
Parece trabalhoso, mas te dá a liberdade de converter da forma que quiser, mudar (nome de campos, tamanho, Tipo etc...)
Segue abaixo em trecho de código para ler TXT:
ArqTxt: TextFile;
StrLinha : String;
begin AssignFile( ArqTxt, ´niveis.txt´ ); Reset( ArqTxt ); //--- Loop Arquivo Texto while not eof( ArqTxt ) do begin ReadLn( ArqTxt, StrLinha ); //--- Adiciona registro e define campos IB_Query_Niveis.Append; IB_Query_Niveis.FieldByName(´CODNIVEL´).AsInteger := StrToInt(Copy( StrLinha, 1,5 )); IB_Query_Niveis.FieldByName(´CODCURSO´).AsInteger := StrToInt(Copy( StrLinha, 6,5 )); IB_Query_Niveis.FieldByName(´SEGMENTO´).AsString := Copy( StrLinha, 11,1 ); IB_Query_Niveis.FieldByName(´SEQUENCIA´).AsInteger := StrToInt(Copy( StrLinha, 12,2 )); IB_Query_Niveis.FieldByName(´DESCRICAO´).AsString := Copy( StrLinha, 14,40 ); IB_Query_Niveis.Post; end; IB_Query_Niveis.First; CloseFile( ArqTxt ); end;
Tem que fazer uma rotina dessa para cada tabela.
Espero que ajude!
GOSTEI 0
Gandalf.nho
12/07/2006
Use o IBDatapump para isso.
GOSTEI 0