Mario Mesquita escreveu:Pessoal, essa LibMySql serve para uso em produção, dá pra botar em cliente pra fazer a conexão com a BD?
Achei bem interessante para um iniciante como eu, apesar de estar vendo também como usar via ADO, com os excelentes posts do mestre Quintas e demais colegas.
Ou será melhor usar o ADO e não depender de ferramentas do Harbour? Mas se ela for usável, tem que ter aquela DLL ou seria o caso de incorporar a classe
dentro dos meus programas? Tem o fonte das classes que compõe a lib, é isso mesmo?
ADO, hbMySQL ou SQLMIX, todas fazem uso da libmysql.dll que é fornecida pelo MySQL, ou pelo servidor ou pelo conector.
Qualquer que seja a opção vai instalar ou a DLL ou o ODBC ADO que contém a DLL.
No caso de hbMySQL e SQLMIX, a LIB do Harbour faz uso da DLL, então precisa gerar a LIB para a DLL especÃfica, e distribuir essa DLL especÃfica. A LIB do Harbour sozinha não vai funcionar, ela é apenas uma intermediária.
No caso do ADO, é parte do Windows, é como uma classe do Windows disponÃvel para o aplicativo, mas depende de instalar o ODBC do MySQL, já que no Windows só vém ODBCs pra produtos Microsoft.
Usando SQLMIX, o retorno é tratado da mesma forma que DBFs.
Usando hbMySQL, o retorno é tratado como array.
Usando ADO, o retorno é tratado como recordset ADO.
Então, a primeira diferença é o tipo de retorno, pra cada um vai ter um fonte diferente, sendo que no SQLMIX é mais próximo de DBF, provavelmente aproveite melhor os fontes antigos.
SQLMIX é o que o nome diz: um MIX, de tudo que existe no Harbour.
Acaba podendo usar hbMySQL ou até ODBC através dele, o que expande pra bases não tratadas normalmente pelo Harbour.
Vantagens/Desvantagens de cada um?
- ADO é só Windows, faz parte do Windows, se tem ODBC/conector pra base de dados, é só usar.
Será mudança radical nos fontes.
As LIBs gráficas costumam fazer algo direcionado a ADO
- SQLMIX a vantagem é aproveitar fontes, o que pode ser muito bom na fase de migração.
A vantagem é tratar igual DBF, o que aproveita todos os controles voltados pra DBF
Talvez a desvantagem seja o programador esquecer que se trata de MySQL, e continuar pensando igual DBF.
- hbMySQL é totalmente por array, com certeza precisa mudança nos fontes
- Tem também a RDDADO, apesar de removida do Harbour 3.4, ainda está em extras do 3.2, e em algumas LIBs.
Seria usar ADO igual DBF, mas pra LEITURA, todo resto continua sendo comandos SQL.
Por ser ADO, só em Windows
Por causa das particularidades, tem dois pontos importantes a decidir:
- Se Windows ou Linux, isso já descarta opções
- Se aproveitar fontes é importante, isso também já descarta opções
De um modo geral, no MySQL é o servidor quem vai trabalhar, só haverá transferência de informação entre servidor e terminal.
Fica difÃcil falar em velocidade, se em todas dá pra enviar comandos para o servidor e trazer o resultado pronto.
Tirando as decisões acima, o resto é questão pessoal, como vai se sentir mais confortável, se com array ou dbf ou outro.
Em todas vai acabar enviando comandos pra inclusão, alteração e exclusão.
Desde o começo só usei ADO, não sei dizer em termos práticos se tem mais diferenças além dessas acima.