Fórum Criar bancos firebird e mysql através da aplicação #363934

15/09/2008

0

Boa tarde amigos, pesquisei muito sobre esse assunto aqui nos fóruns e não encontrei uma solução adequada ao meu problema, preciso criar um banco de dados usando firebird e um usando mysql isso tudo através do Delphi, vi algumas dicas sobre como criar usando o isql para firebird isso até que me serve mas queria uma solução para os dois bancos, alguém já criou isso e poderia me ajuda?


Steles

Steles

Responder

Posts

16/09/2008

Steles

encontrei uma solução para o firebird que funcionou http://forum.clubedelphi.net/viewtopic.php?p=294222&sid=e596d5c37d457baeed20de04df9975f2 é uma dica do Fabiano Góes, tem uma dica sobre o mysql tb, alguem tem uma solução generica que englobaria os dois bancos?


Responder

Gostei + 0

16/09/2008

Fábio Valente

Bom não sei se jah tentaram... mas eu utilizei por anos o DBExpress para o Interbase/Firebird e hoje utilizo o mesmo para o MySQL.

A grande vantagem de utilizá-lo é a portabilidade de poder fazer a mesma operação trocando somente a ´lib´ carregada.

Não sei se estou falando bobeira, nunca tentei mudar em tempo de projeto, mas acredito que seja possível também.

Boa sorte ai


Responder

Gostei + 0

17/09/2008

Steles

Olá caro amigo Nervouz, sim com certeza isso é possível, mas o grande problema é conseguir criar uma base de dados através da aplicação, no link que postei acima há um exemplo criando um banco firebird e é criado em tempo de execução um componente TIBDatabase do IBX e assim é possivel executar um script e criar o bando mas esses componentes são específicos para Interbase/Firebird e não funcionam para MySQL, neste mesmo link que postei acima há uma dica para se criar um bando MySQL conectando ao banco ´test´ ou ´mysql´ que são bancos criados na instalação do MySQL e a partir dai executar um script criando a sua própria base de dados, ok.

O que eu estava querendo fazer é criar um método genérico para criação de bancos de dados através da aplicação, o exemplo do link funciona muito bem, se alguém tiver uma solução genérica de criação por favor post aqui, pelo que vi nos fóruns daqui isto já foi discutido anteriormente mas não vi uma solução genérica de criação, talvez não seja possível mesmo já que os dois bancos possuem estruturas diferentes.

Obrigado Nervouz....até mais


Responder

Gostei + 0

30/09/2008

Fábio Valente

Boa tarde!

Acessei o link, e não achei referência ao componente que falou lá, e sim ao próprio DBExpress.

Bom, para complementar suas dúvidas, utilize o comando ExecSQL e use a linhas de comando para criar triggers, procedures etc. Mas cuidado, porque apesar dos bancos serem baseados no SQL ANSI/92 (se não me engano), mas as duas têm comandos próprios, com nomes e sintaxe diferentes.

Você terá duas opções:

Primeira:
Você pode analisar as linhas de comandos dos bancos e fazer um tratamento através de matrizes (contendo os comandos semelhantes na mesma coluna para ambos, onde cada linha represente um banco diferente, assim vc pode pegar o ´comando´ da matriz usando um IF ou CASE e variáveis de referencia ao tipo de banco conectado e resolver suas diferenças de portabilidade na mão... (serah trabalhoso, mas funcionará).

Segunda:
Você não utiliza comandos próprios da linguagem (como IF ou CASE dentro da ´select´), ou seja, faça tudo utilizando somente os formatos suportados na padronização ANSI/92... o que pode ser trabalho por um lado e vantajoso por outro.

Eu não vou sugerir nem um nem outro porque só você pode saber o que é melhor para o seu caso.

Espero ter ajudado.

Boa sorte!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar