mysql e delphi
Olá,
Preciso migrar um banco de dados de paradox para mysql e depois de fazer a migração preciso conectar meu banco de dados mysql ao delphi. Alguém sabe migrar de paradox para mysql e conectar mysql com delphi, a todos que apenas visitarem e aos que me ajudarem desde já obrigado.
Preciso migrar um banco de dados de paradox para mysql e depois de fazer a migração preciso conectar meu banco de dados mysql ao delphi. Alguém sabe migrar de paradox para mysql e conectar mysql com delphi, a todos que apenas visitarem e aos que me ajudarem desde já obrigado.
Xiconet
Curtidas 0
Respostas
Lcquinhone
29/10/2003
Caro Colega, estou querendo sair do PARADOX e partir para o MySQL, estou precisando do MyODBC, vc tem pra me fornecer, fui na página da MYSQL mas eles dificultaram tanto em baixar que eu desisti...
GOSTEI 0
Koplin
29/10/2003
Caros colegas:
Não conheço (e acho q não tem nenhuma ferramenta para esta migracao)
Eu fiz uma ´coisa´ que uso para migrar minhas tabelas e funciona.
Seu princípio se baseia varrer a tabela paradox, identificar o tipo de dado e o nome do campo e localizar na tabela paradox (que deve ter o campo com o mesmo nome).
Ele verifica o tipo de dado. Se for compativel ele exporta direto caso contrario faz a conversao para tipo compativel.
Usa uma query e um zQuery (zLib)
Por exemplo eu uso para true do paradox S (char) e false N(char)
Quando ele acha um campo ftboolean ele verifica se é true e grava S...
Mas é uma ´coisa´ que se aplicou para minha necessidade. se quiser posso mandar o código para vc se basear e fazer algo parecido.
Para o caso do myODBC, eu sugiro o uso do DBExpress ou components zLIb que acessam nativamente(muito + rápido) o mySQL.
Espero ter ajudado e deixo meu email a disposição.
Boa sorte
Não conheço (e acho q não tem nenhuma ferramenta para esta migracao)
Eu fiz uma ´coisa´ que uso para migrar minhas tabelas e funciona.
Seu princípio se baseia varrer a tabela paradox, identificar o tipo de dado e o nome do campo e localizar na tabela paradox (que deve ter o campo com o mesmo nome).
Ele verifica o tipo de dado. Se for compativel ele exporta direto caso contrario faz a conversao para tipo compativel.
Usa uma query e um zQuery (zLib)
Por exemplo eu uso para true do paradox S (char) e false N(char)
Quando ele acha um campo ftboolean ele verifica se é true e grava S...
Mas é uma ´coisa´ que se aplicou para minha necessidade. se quiser posso mandar o código para vc se basear e fazer algo parecido.
Para o caso do myODBC, eu sugiro o uso do DBExpress ou components zLIb que acessam nativamente(muito + rápido) o mySQL.
Espero ter ajudado e deixo meu email a disposição.
Boa sorte
GOSTEI 0
Xiconet
29/10/2003
Olá colega,
Obrigado pelas dicas. Com relação a fonte, sim claro, que gostaria de ter, se não for incomodo. Estou o maior tempo tentando fazer essa migração. Vou aproveitar essa semana de férias para fazer o acesso ao banco de dados utilizando o DBexpress ou Zlib, valeu e fico aguardando sua resposta.
Obrigado pelas dicas. Com relação a fonte, sim claro, que gostaria de ter, se não for incomodo. Estou o maior tempo tentando fazer essa migração. Vou aproveitar essa semana de férias para fazer o acesso ao banco de dados utilizando o DBexpress ou Zlib, valeu e fico aguardando sua resposta.
GOSTEI 0
Koplin
29/10/2003
Estou terminando uma ferramenta decente para transferencia tanto de estrtutura quanto de dados de Paradox para MySQL.
Está em fase de testes. Assim que estiver pronto mando para voce.
Está em fase de testes. Assim que estiver pronto mando para voce.
GOSTEI 0
Xiconet
29/10/2003
Valeu mesmo cara, fico no aguardo. Até mais!!!!!!!
:D
:D
GOSTEI 0
Mition
29/10/2003
Em um DataModule coloque os seguintes componentes:
da pasta DBExpress:
* SQLConnection1
* SQLDataSet1
da pasta DataAccess:
* DataSetProvider1 (aqui está o pulo do gato!)
* ClientDataSet1
* DataSource1
configurações das propriedades de
1. SQLConnection1
1.1 ConnectionName:=MySQLConnection
1.2 DriverName := MySQL
1.3 LoginPrompt:=false
1.4 Params:
Host Name: <endereço no servidor> ´Ex: 200.215.20.3´
Data BAse: <nome do seu BD>
User Name: <login de acesso>
Password: <senha de acesso>
1.5. Connected:=true;
configurações das propriedades de
2. SQLDataSet12.1 SQLConnection:=SQLConnection1 (ou o nome que vc escolheu)
2.2 CommandType -> 03 opções:
2.2.1. Se vc escolher ctQuery (padrão), deverá trabalhar com instruções SQL (insert, update, delete, select) - (recomendável)
2.2.2. ctTable, instruções normais de objetos Table
2.2.3. ctStoredProc, procedimentos de instruções em SQL para ´stored procedures´ (gatilhos - muito útil, qdo necessário)
2.3. CommandText:= select * from <nome tabela> <demais comandos> ou clique em ´...´ para abrir o editor SQL e monte sua instrução. Utilize inicialmente instruções de consulta - em outras ocasiões, poderá utilizar comandos de execução (+ prá frente).
2.4. Active:=true
configurações das propriedades de
3. DataSetProvider1
3.1 DataSet:=SQLDataSet1 (ou o nome que vc escolheu)
configurações das propriedades de
4. ClientDataSet1 (manterá os registros da tabela em memória (buffer) para a navegação bidirecional - vc não estará navegando na table e sim na consulta)
4.1 ProviderName:=DataSetProvider1 (ou o nome que vc escolheu)
4.2 Active:=true
OBS.:esse componente ClientDataSet substitui o componente Table! a vantagem é que vc está trabalhando com os registro/tables em sua máquina. O servidor será atualizando (e a rede acessada) somente após a confirmação dos dados inseridos, alterados ou excluídos. Não haverá um grande tráfego na rede.
configurações das propriedades de
5. DataSource1 (aí é muita moleza - se vira!(risos))
OBS: para cada tabela em seu data módulo, vc deverá ter um componente SQLDataSet,DataSetProvider, ClientDataSet e DataSource. (somente um SQLconnection compartilhado entre todos eles)
Se houver necessidade de vc acessar outro Banco de Dados, deverá colocar outro SQLConnection.
Coisas a se considerar:
1. As buscas são feitas através do método LOCATE dos ClientDataSets (esqueça seek, gotokey,gotonearest,...). Como as tabelas já tem seu índice ou campos indexados, ele fará a consulta por onde ele achar mais rápido (claro que depende se chave que vc está buscado é índice ou indexado)
2. Navegação é normal (first, prior, ...)
3. Não utilize o método Post (apesar de estar habilitado). Motivo: Post atualiza apenas o ClientDataSet (em buffer), e não atualizará o BD Servidor.
4. No lugar de Post, utilize o método applyUpdates(-1). Desse modo atualizará o ClientDataSet e o SQLDataSet (diretamente no BD Servidor).
Ex: DataModule1.ClientDataSet1.applyupdates(-1);
5. Daqui para frente, só utilize instruções em SQL (se preferir. Lógico!)
6. Se preferir utilizar os métodos Insert, Delete, Edit, etc, no ClientDataSet (como no Table), tudo bem, mas nunca utilize POST para confirmar e sim ApplyUpdates(-1)!
7. Se um SQLConnection estiver fechado, a partir do momento que vc abrir um SQLDataSet, a conexão será automaticamente aberta. Não acontece o mesmo se fizer o ClientDataSet.
UFA! Quanto tempo para digitar!
Boa Sorte
A propósito (NÃO TEM COMO DAR ERRADO POIS EU UTILIZO DIARIAMENTE!)
[]´S e boa sorte
Mição
P.S. Uma boa bibliografia->Delphi 6 com FireBird/Interbase - Bastiaan Pieter Marinus Wilderom/Marcelo Frank - Editora Érica. Esse livro explica detalhadamente o que passei para vc! Sem falar que o livro é um projeto de PDV (posto de venda - com impressora fiscal e uso de código de barras - MUITO ÚTIL E NECESSÁRIO)
Revistas Clube Delphi Edições -> 17,18,22,23 e 28.
_________________
Mição
da pasta DBExpress:
* SQLConnection1
* SQLDataSet1
da pasta DataAccess:
* DataSetProvider1 (aqui está o pulo do gato!)
* ClientDataSet1
* DataSource1
configurações das propriedades de
1. SQLConnection1
1.1 ConnectionName:=MySQLConnection
1.2 DriverName := MySQL
1.3 LoginPrompt:=false
1.4 Params:
Host Name: <endereço no servidor> ´Ex: 200.215.20.3´
Data BAse: <nome do seu BD>
User Name: <login de acesso>
Password: <senha de acesso>
1.5. Connected:=true;
configurações das propriedades de
2. SQLDataSet12.1 SQLConnection:=SQLConnection1 (ou o nome que vc escolheu)
2.2 CommandType -> 03 opções:
2.2.1. Se vc escolher ctQuery (padrão), deverá trabalhar com instruções SQL (insert, update, delete, select) - (recomendável)
2.2.2. ctTable, instruções normais de objetos Table
2.2.3. ctStoredProc, procedimentos de instruções em SQL para ´stored procedures´ (gatilhos - muito útil, qdo necessário)
2.3. CommandText:= select * from <nome tabela> <demais comandos> ou clique em ´...´ para abrir o editor SQL e monte sua instrução. Utilize inicialmente instruções de consulta - em outras ocasiões, poderá utilizar comandos de execução (+ prá frente).
2.4. Active:=true
configurações das propriedades de
3. DataSetProvider1
3.1 DataSet:=SQLDataSet1 (ou o nome que vc escolheu)
configurações das propriedades de
4. ClientDataSet1 (manterá os registros da tabela em memória (buffer) para a navegação bidirecional - vc não estará navegando na table e sim na consulta)
4.1 ProviderName:=DataSetProvider1 (ou o nome que vc escolheu)
4.2 Active:=true
OBS.:esse componente ClientDataSet substitui o componente Table! a vantagem é que vc está trabalhando com os registro/tables em sua máquina. O servidor será atualizando (e a rede acessada) somente após a confirmação dos dados inseridos, alterados ou excluídos. Não haverá um grande tráfego na rede.
configurações das propriedades de
5. DataSource1 (aí é muita moleza - se vira!(risos))
OBS: para cada tabela em seu data módulo, vc deverá ter um componente SQLDataSet,DataSetProvider, ClientDataSet e DataSource. (somente um SQLconnection compartilhado entre todos eles)
Se houver necessidade de vc acessar outro Banco de Dados, deverá colocar outro SQLConnection.
Coisas a se considerar:
1. As buscas são feitas através do método LOCATE dos ClientDataSets (esqueça seek, gotokey,gotonearest,...). Como as tabelas já tem seu índice ou campos indexados, ele fará a consulta por onde ele achar mais rápido (claro que depende se chave que vc está buscado é índice ou indexado)
2. Navegação é normal (first, prior, ...)
3. Não utilize o método Post (apesar de estar habilitado). Motivo: Post atualiza apenas o ClientDataSet (em buffer), e não atualizará o BD Servidor.
4. No lugar de Post, utilize o método applyUpdates(-1). Desse modo atualizará o ClientDataSet e o SQLDataSet (diretamente no BD Servidor).
Ex: DataModule1.ClientDataSet1.applyupdates(-1);
5. Daqui para frente, só utilize instruções em SQL (se preferir. Lógico!)
6. Se preferir utilizar os métodos Insert, Delete, Edit, etc, no ClientDataSet (como no Table), tudo bem, mas nunca utilize POST para confirmar e sim ApplyUpdates(-1)!
7. Se um SQLConnection estiver fechado, a partir do momento que vc abrir um SQLDataSet, a conexão será automaticamente aberta. Não acontece o mesmo se fizer o ClientDataSet.
UFA! Quanto tempo para digitar!
Boa Sorte
A propósito (NÃO TEM COMO DAR ERRADO POIS EU UTILIZO DIARIAMENTE!)
[]´S e boa sorte
Mição
P.S. Uma boa bibliografia->Delphi 6 com FireBird/Interbase - Bastiaan Pieter Marinus Wilderom/Marcelo Frank - Editora Érica. Esse livro explica detalhadamente o que passei para vc! Sem falar que o livro é um projeto de PDV (posto de venda - com impressora fiscal e uso de código de barras - MUITO ÚTIL E NECESSÁRIO)
Revistas Clube Delphi Edições -> 17,18,22,23 e 28.
_________________
Mição
GOSTEI 0
Koplin
29/10/2003
Nunca use os DExpress com My
Mas vou dar uma olhada para comparar com Zeus.
Valeu as dicas(se tava com tempo mesmo) he he!
Mas vou dar uma olhada para comparar com Zeus.
Valeu as dicas(se tava com tempo mesmo) he he!
GOSTEI 0