Clipper On Line • Ver Tópico - Xailer Open DBF2SQL Conversor para MariaDB / MySQL
Página 1 de 1

Xailer Open DBF2SQL Conversor para MariaDB / MySQL

MensagemEnviado: 21 Out 2013 23:38
por fladimir
Projeto que fiz para auxiliar colegas que estejam precisando migrar suas tabelas DBF para MariaDB/MySQL.

Disponível na área de Downloads

O projeto é o seguinte:

Formulário onde ao clicar no botão Escolhe Tabelas DBFs aparece uma Caixa de Dialogo para escolher as tabelas (pode ser mais de uma)...
Após escolher as tabelas o Formulário se expande permitindo testar conexão com o banco de dados.
Caso a conexão esteja ok o Combo Box Bancos de Dados será atualizado e terá a lista de todos os bancos de dados existentes...
Pode-se escolher um determinado banco ou clicar no botão Criar Banco Novo que irá abrir um EditBox perguntando o nome do banco de dados e irá tentar criar, CASO consiga criar já irá posicionar no Combo Box atualizado.
Depois ao clicar em Iniciar conversão de Dados o sistema Lê a estrutura de cada tabela DBF e cria sua respectiva no Banco MariaDB ou MySQL.
Depois ele migra todos os dados das tabelas DBF para MariaDB / MySQL.

Fiz rapidamente para aprendizado geral (inclusive o meu) e ficou um pequeno detalhe para quem quiser se aventurar que é o seguinte...

Caso alguma tabela DBF tenha um Campo cujo NOME seja IGUAL a um Membro do DataSet do Xailer ele dá conflito e o laço FOR NEXT aproximadamente na linha 170 fura a lógica e entra num loop infinito.
Não tive tempo de olhar mas de mais de 100 tabelas que deixei migrando apenas 2 deram problema e cada 1 em um campo cada, uma tinha um campo chamado CARGO e outra tinha um campo chamado END, as demais deram certo.
Outro detalhe, a lógica que fiz migrando campo a campo analisando cada tipo não achei muito legal, mas foi a que me ocorreu na hora, quem tiver uma lógica melhorada para tal fique a vontade.

Grande abraço, espero que ajude aos colegas...

Pessoal editei este post pois no projeto disponível para Download vi que faltou um PRG que estou anexando aqui pois não sei como corrigir lá na seção Downloads...

[]´s

Xailer Open DBF2SQL Conversor para MariaDB / MySQL

MensagemEnviado: 24 Out 2013 19:34
por fladimir
Senhores na linha 176 aproximadamente aconselho a trocar por:

IF ValType(&(_CSF)) == 'C'
oTabSQL:FieldPut(_C2, HB_OEMTOANSI( &(_CMF) ) )
ELSE
oTabSQL:FieldPut(_C2, &(_CMF) )
ENDIF

Para que quando forem campos CARACTER converta de OEM para ANSI.

[]´s