Dúvidas Harbour e MySQL

Forum sobre SQL.

Moderador: Moderadores

tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Dúvidas Harbour e MySQL

Mensagem por tonicm »

Boas.

Este ano passei os meus programas de clipper para harbour.
Estou a programar em hb34 e compilo com o editor "Harbour IDE (r417)".

Agora estou a tentar passar para MySql.
Estive todo o dia de hoje a tentar perceber como fazer este passo, mas o que consegui encontrar não dá ou dá-me erro.
Já consigo ler dados da base de dados, mas não consigo escrever.
Será que me podiam dar umas luzes de qual a melhor maneira de usar o MySQL em Harbour?

Código: Selecionar todos

STATIC PROCEDURE TEST_ADODB()
   LOCAL oRs, sConn

   IF ( oRs := win_oleCreateObject( "ADODB.Recordset" ) ) != NIL

      sConn="Driver={MySQL ODBC 5.3 ANSI Driver};Server=localhost;Port=3306;Database=xxx;User=yyy;Password=zzz;option=3;"
      oRs:Open( "SELECT CAMPO1 FROM Testes", ;
         sConn, ;
         adOpenForwardOnly, ;
         adLockReadOnly )

      DO WHILE ! oRs:EOF
         ? oRs:Fields( 0 ):Value
         oRs:MoveNext()
      ENDDO
      
      /* //testes de escrita

         //1. dá erro
         oRs:AddNew()
         ors:CAMPO1=I
         oRs:UpDate()

         //2. não reconhece o execute
         oRs:Execute( "INSERT INTO Testes (CAMPO1) VALUES ("+ALLSTR(I)+")" )
      */

      oRs:Close()
      Inkey(0)
   ENDIF

   RETURN

Neste segundo dá erro a compilar

Código: Selecionar todos

#include "adordd.ch"
REQUEST ADORDD
STATIC PROCEDURE Test_ADODB()
   clear screen
   setmode(25,80)
   USE xxx VIA "ADORDD" TABLE "Testes" MYSQL FROM "localhost" USER "yyy" PASSWORD "zzz"
   dbedit()
   USE
   clear screen
RETURN

Código: Selecionar todos

E:/Trab/SoftSal/.hbmk/win/mingw/ALERTAS.o:ALERTAS.c:(.data+0x1688): undefined reference to `_HB_FUN_HB_ADOSETTABLE'
E:/Trab/SoftSal/.hbmk/win/mingw/ALERTAS.o:ALERTAS.c:(.data+0x1698): undefined reference to `_HB_FUN_HB_ADOSETENGINE'
E:/Trab/SoftSal/.hbmk/win/mingw/ALERTAS.o:ALERTAS.c:(.data+0x16a8): undefined reference to `_HB_FUN_HB_ADOSETSERVER'
E:/Trab/SoftSal/.hbmk/win/mingw/ALERTAS.o:ALERTAS.c:(.data+0x16b8): undefined reference to `_HB_FUN_HB_ADOSETUSER'
E:/Trab/SoftSal/.hbmk/win/mingw/ALERTAS.o:ALERTAS.c:(.data+0x16c8): undefined reference to `_HB_FUN_HB_ADOSETPASSWORD'
collect2.exe: error: ld returned 1 exit status

hbmk2 [SoftSAL-ALERTAS]: Error: Running linker. 1
tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Dúvidas Harbour e MySQL

Mensagem por tonicm »

O segundo exemplo já consegui compilar sem erro.
Faltava juntar o ficheiro ADO.PRG.
Mesmo assim, dá erro ao executar:

Código: Selecionar todos

Erro WINOLE/1007  [Microsoft][Gestor de controladores de ODBC] O nome da origem
de dados não foi encontrado e não foi especificado nenhum controlador predefinid
o (0x80004005): Microsoft OLE DB Provider for ODBC Drivers (Erro do DOS Nº -2147
352567)
Chamado de WIN_OLEAUTO:OPEN(0)
Chamado de ADO_OPEN(344)
Chamado de DBUSEAREA(0)
tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Dúvidas Harbour e MySQL

Mensagem por tonicm »

Problema resolvido.

Para quem precisar, tem muito informação neste tópico:
https://pctoledo.org/forum/viewto ... 32&start=0


Obrigado ao JoséQuintas.
Responder