Não tenho experiência de acesso à bancos de dados com C++ e queria
umas dicas de por onde pesquisar.
Estou desenvolvendo um software e pretendo que ele seja
multiplataforma, portanto escolhi o wxWidgets para a interface gráfica
e está indo muito bem no linux e no windows.
Comecei usando a biblioteca mysql++ e surgiu algumas dúvidas...
É prática na programação em C++ usar algum pattern como o DAO para a
persistencia dos dados?
Se não, como devo proceder?
Vocês recomendam o MySQL com o C++ ? É que já uso mysql há um bom
tempo com Java e PHP....
Obrigado.
A escolha do banco de dados depende de vários fatores. Entendo que os
mais importantes são o volume de transações e a quantidade de dados
armazenados.
O acesso à banco de dados é um assunto mal resolvido na computação
moderna. Há uma miríade de formas de acessar uma grande diversidade de
bancos de dados. Algumas plataformas resolveram esse problema, como o
JDBC do java ou ADO/ODBC/Jet no Windows.
Via de regra o acesso aos bancos de dados é feito através de
bibliotecas especializadas que dependem dos fabricantes. Como você
pretende desenvolver sua aplicação com independência de plataforma,
sugiro que você também se torne independente do banco de dados,
encapsulando todo o acesso em classes de tal forma que estas façam
interface com as rotinas de acesso do banco de dados de fato. Trocou
de banco de dados, trocam-se as classes, mantendo-se a interface, o
que localiza as mudanças na sua aplicação em uma camada de nível bem
baixo.
Acredito que deva existir alguma biblioteca ou framework que já traga
isso pronto para você, pois esse é um problema recorrente em
programação.
2009/12/16 Tiago Natel de Moura <tiago...@gmail.com>:
> --
> Antes de enviar um e-mail para o grupo leia:
> http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
> --~--~---------~--~----~------------~-------~--~----~
> C/C++ Brasil - http://www.ccppbrasil.org/
> Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
> Para mais opções, visite http://groups.google.com/group/ccppbrasil
> --~--~---------~--~----~------------~-------~--~----~
> Emprego & carreira: vag...@ccppbrasil.org
> http://groups.google.com/group/dev-guys?hl=en
Olá, Tiago.
From: Bruno Sanches
2009/12/17 Bruno Sanches <bcsa...@gmail.com>:
@Rodrigo
Já houvi falar muito de Qt, voce saberia me dar um comparativo entre
Qt wxWidgets ? Porque já estou bem familiarizado com wx.
Qt possui uma abstração de banco de dados?
Valeu.
Tiago Natel de Moura
http://blog.tiagomoura-design.com.br
2009/12/17 Bruno Sanches <bcsa...@gmail.com>:
--
2009/12/17 Tiago Natel de Moura <tiago...@gmail.com>:
> --
> Antes de enviar um e-mail para o grupo leia:
> http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
> --~--~---------~--~----~------------~-------~--~----~
> C/C++ Brasil - http://www.ccppbrasil.org/
> Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
> Para mais opções, visite http://groups.google.com/group/ccppbrasil
> --~--~---------~--~----~------------~-------~--~----~
> Emprego & carreira: vag...@ccppbrasil.org
> http://groups.google.com/group/dev-guys?hl=en
--
Antes de enviar um e-mail para o grupo leia:
http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
--~--~---------~--~----~------------~-------~--~----~
C/C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
Para mais opções, visite http://groups.google.com/group/ccppbrasil
--~--~---------~--~----~------------~-------~--~----~
Emprego & carreira: vag...@ccppbrasil.org
http://groups.google.com/group/dev-guys?hl=en
Alguns que me lembro agora:
http://sourceforge.net/apps/trac/litesql/
http://soci.sourceforge.net/
E muitos outros que já foram citados aqui na lista.
Um teste simples com OTL:
http://cpp.pastebin.com/f68ebbd76
Outro exemplo, utilizando um iterator:
http://cpp.pastebin.com/f74c4d503
Exemplo mais complexo, um terminal iterativo:
http://cpp.pastebin.com/f56cec3f3
(inclui teste de performance)
Espero que seja útil.
Márcio Gil.
@Marcio
Vou dar uma olhada nessa OTL tb.
Obrigado a todos, já vi que há muitas alternativas. Problema agora é
eu me decidir rsrs
Pesquisar sobre essas dicas agora.
--
aí vão dois teste com SOCI:
http://cpp.pastebin.com/f71cbfc6a
http://cpp.pastebin.com/f443cf63b
e os meus testes com ODBC puro:
http://cpp.pastebin.com/f744caa64
http://cpp.pastebin.com/f1abb135f
http://cpp.pastebin.com/f1161b2a9
Na época quando fiz estes testes, reparei que o teste com ODBC puro,
apesar de muito mais complexo, tinha um desempenho muito superior
quando se trata de navegação, pois permite acesso aleatório, ao
contrário da maioria das bibliotecas, que ou não suporta ou simula o
acesso aleatório como eu fiz nos testes com OTL e o SOCI. Por esse
motivo eu até cogitei criar minha biblioteca, mas não pude por falta
de tempo.
Márcio Gil.
> -----Original Message-----
> From: Tiago Natel de Moura
>
Para projetos grandes sugiro o postgresql, para projetos menores,
sugiro o sqlite.
Também apóio a sugestão da biblioteca Qt, pois tem suporte para todos
esses SGBD, é multiplataforma, está em franco desenvolvimento, tem
excelentes ferramentas de desenvolvimento próprias e "plugins" tanto
para o Eclipse quanto para o VisualStudio. E é LGPL. Simpatizo muito
com a wxWidgets, mas as vantagens da Qt são bem melhores, na minha
humilde opinião. É interessante notar que o conceito de layout
"elástica" é praticamente idêntico, e a facilidade de se criar estilos
(ou "skins") é muito grande, muito similar ao GTK, e portanto ao
wxGTK. Além disso tudo, a integração com javascript (ECMASCRIPT, como
eles preferem dizer) permite, por exemplo, criar plugins para o seu
aplicativo sem alterar os executáveis primários. Também integra o
"WebKit", que é um renderizador de HTML muito bom, o "Phonon", uma
interface para arquivos multimídia e uma plataforma gráfica que
permite personalizações e animações para os elementos da interface de
usuário.
Abraços
Chico
2009/12/17 Tiago Natel de Moura <tiago...@gmail.com>:
> --
> Antes de enviar um e-mail para o grupo leia:
> http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
> --~--~---------~--~----~------------~-------~--~----~
> C/C++ Brasil - http://www.ccppbrasil.org/
> Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
> Para mais opções, visite http://groups.google.com/group/ccppbrasil
> --~--~---------~--~----~------------~-------~--~----~
> Emprego & carreira: vag...@ccppbrasil.org
> http://groups.google.com/group/dev-guys?hl=en
--
"If you have an apple and I have an apple and we exchange apples then
you and I will still each have one apple. But if you have an idea and
I have one idea and we exchange these ideas, then each of us will have
two ideas." - George Bernard Shaw
A Oracle teve de fazer uma série de concessões para poder concluir a
aquisição da quase falecida Sun. Segundo esta notícia no NYT, a Oracle
manterá o MySQL no modelo que já é hoje, por força da regulação
anti-truste européia.
http://www.nytimes.com/2009/12/15/technology/companies/15oracle.html
Abraços,
Ronaldo
2009/12/18 Francisco Ares <fra...@gmail.com>:
--
É claro que a Qt avança muito mais rapidamente, pois recebe muito
investimento privado (até por ser um produto comercial). Ao
contrário do wxWidgets que, apesar disso, também é bem completo, e
mais conservador.