Página 1 de 1

Harbour 3.4 + MySQL

Enviado: 17 Fev 2017 09:46
por jbsantos
Tenho um programa que faz acesso ao banco de dados MySQL. No Harbour 3.2 compilo e executo normalmente.
Recompilei com o Harbour 3.4, mas ao executar ele acusa falta do arquivo mariadb.dll.
Já copiei várias versões do mariadb.dll na pasta do executável, mas não funciona (dá erro de entrada não encontrada).
Alguém já passou por isto?

Harbour 3.4 + MySQL

Enviado: 17 Fev 2017 11:52
por fladimir
No Xailer uso a libmariadb.dll não sei se serviria, mas posso te mandar e vc renomeia pro nome q esta sendo pedido e ve se funciona.

Harbour 3.4 + MySQL

Enviado: 17 Fev 2017 11:55
por jbsantos
Já tentei com a lib do Xailer, mas deu erro também.

Harbour 3.4 + MySQL

Enviado: 17 Fev 2017 16:31
por JoséQuintas
A dll é do tipo que precisa ser registrada?
talvez 32/64 bits?

Harbour 3.4 + MySQL

Enviado: 21 Fev 2017 06:23
por jbsantos
Até a versão 3.2 do Harbour nunca precisou registrar. Bastava que a dll estivesse na mesma pasta do executável.

Harbour 3.4 + MySQL

Enviado: 21 Fev 2017 10:29
por JoséQuintas
Ok, então é aquela história de sempre:

Precisa da DLL ANTES de gerar a LIB, para que a LIB seja adequada.
Tanto a DLL quanto o arquivo H.

Arquivo DLL -> é gerada uma LIB contendo chamadas à DLL
Arquivos .c + .h -> é gerada uma LIB adicional, não sei se junto ou separada da anterior, com a compatibilidade de tipos Harbour/C

O EXE é gerado com essas duas LIBs (ou uma só, não sei como o Harbour trata isso), e a DLL tem que ser a mesma usada na geração.

DLL + .h -> gera uma ou duas LIBs
LIB(s) -> geram o EXE
EXE = precisa da mesma DLL usada na geração da(s) LIB(s)

O arquivo .H é parecido com o .CH, a diferença é que o .H é pra fonte da linguagem C, e o CH é pra fonte Clipper/Harbour.

Além disso, precisa ver pra qual versão de DLL/H que o Harbour está preparado pra aceitar.
Não serve qualquer uma, talvez possa ser mais velha, mas não mais nova.

Por isso não gosto de usar essas coisas... é muito chato ficar procurando o que pode ou não pode.

Usando ADO é o que estiver instalado na máquina, tanto faz versão de DLL/ODBC/ADO/etc.
Cada máquina pode usar uma versão diferente, e sempre dá certo.