Instalação e configuração do Harbour - Win64

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Instalação e configuração do Harbour - Win64

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:O Bug ocorre nas funções lastrec() e reccount() não é atualizado o numerador, fui eu que achei e postei no forum de usuários o problema.
Precisa ir para o final alias->(DbGoBottom()) para atualizar o contador antes de um [t]browse qualquer.
Sim, e isso pode ser causado por posicionamento incorreto.
GOTO BOTTOM não corrige as funções, ele apenas posiciona num registro existente, e as funções dependem disso pra funcionar.
De repente esse bug foi introduzido depois, e por isso funciona com a versão anterior.

Já comentei aqui, e talvez não seja apenas com ADO a situação:
Testar o equivalente a Eof() ou RecCount() em retorno vazio dá erro, por isso a alternativa é nem testar quando tá vazio.
Dependendo de como é feita essa análise, pode acabar retornando zero em outras situações.
Então, o reposicionamento acaba permitindo os testes completos e corretos.

E voltando ao bug do SQLMIX: pode ser justamente a falta de posicionamento em um registro válido, coisa que o dbgobottom() faz.
Se o bug já existia na versão anterior, ou se foi introduzido depois, isso faz diferença no resultado entre versões.
Lembrando que são comandos SQL diferentes, entre o aplicativo e o teste, e podem ter resultados diferentes também.

Será que é? será que não é? fazendo o teste dá pra confirmar, ou pelo menos eliminar possibilidades.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Instalação e configuração do Harbour - Win64

Mensagem por Itamar M. Lins Jr. »

Olá!
Será que é? será que não é? fazendo o teste dá pra confirmar, ou pelo menos eliminar possibilidades.
Não tem nada de será...
Tem um bug na CAMADA do RDD SQLMIX, já olhei só não sei corrigir. Sei o que é, mas não sei corrigir.
Penso que é um BUG na "herança" do RDD(CDX/NTX...) que não tem o BUG.

Arquivo /contrib/rddsql/sqlbase.c

Código: Selecionar todos

...
static HB_ERRCODE sqlbaseOpen( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo )
{
   HB_ERRCODE errCode;

   pArea->ulConnection = pOpenInfo->ulConnection ? pOpenInfo->ulConnection : s_ulConnectionCurrent;

   if( pArea->ulConnection == 0 || pArea->ulConnection > s_ulConnectionCount ||
       ! s_pConnection[ pArea->ulConnection - 1 ] )
   {
      hb_errRT_SQLBASE( EG_OPEN, ESQLDD_NOTCONNECTED, "Not connected", NULL );
      return HB_FAILURE;
   }

   if( pArea->area.uiFieldCount )
      /* This should not happen (in __dbTrans()), because RDD is registered with RDT_FULL */
      return HB_FAILURE;

   pArea->pConnection = s_pConnection[ pArea->ulConnection - 1 ];
   pArea->pConnection->uiAreaCount++;
   pArea->pSDD = pArea->pConnection->pSDD;

   /* filename is a query */
   pArea->szQuery = hb_strdup( pOpenInfo->abName );

   errCode = pArea->pSDD->Open( pArea );

   if( errCode == HB_SUCCESS )
      errCode = SUPER_OPEN( &pArea->area, pOpenInfo );

   if( errCode != HB_SUCCESS )
   {
      SELF_CLOSE( &pArea->area );
      return HB_FAILURE;
   }
   return SELF_GOTOP( &pArea->area );
}
//Essa Variável aqui! (Creio eu) não está sendo mudada quando abre(cria) o DBF na memória.

 pArea->ulRecCount

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Instalação e configuração do Harbour - Win64

Mensagem por cjp »

Não sei se entendi bem, mas tentei obter o retorno de dbusearea assim:
?dbusearea(.f.,,sel,nmbs+substr(time(),4,2)+substr(time(),7,2),,,,nConnection)
Não dá nenhum retorno.
Coloque teste sobre LastRec(), Eof(), pra tentar descobrir qual é a situação do resultado.
Se for o caso, coloque um GOTO TOP, pra ver se tem a ver com o tal bug.
Não entendi onde devo colocar estes testes.
Inacio de Carvalho Neto
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Instalação e configuração do Harbour - Win64

Mensagem por Itamar M. Lins Jr. »

Olá!

Código: Selecionar todos

! HB_COMPILER: mingw (auto-detected: /hb/comp/mingw32/bin/)
Acredito que é Harbour 32Bits.

Estive olhando o arquivo de LOG que é criado toda noite... Mesmo sem nenhuma alteração do GIT do Harbour.

Tem que saber a versão da sua lib MYSQL(MYSQL INSTALADO) se é compatível com a versão que vc está usando(MYSQL do Harbour). Versão da DLL MYSQL! e MariaDB.

Foi extraída a LIB da DLL, tá lá no LOG. Agora não sei qual é a sua, nem a de quem compila(gera automático) o Harbour no repositório.

Código: Selecionar todos

hbmk2: Created import library: ..\lib\win\mingw\liblibmySQL.a <= C:\hb\3rd\mysql\lib\opt\libmySQL.dll
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Instalação e configuração do Harbour - Win64

Mensagem por Itamar M. Lins Jr. »

Ola!
Por conta desses problemas eu prefiro ensinar a usar o Harbour compilando os fontes. Pq fica tudo 100% compatível.

No caso, basta baixar os fontes do Harbour pelo GIT e compilar, atenção em indicar onde esta instalado o MySql ai no seu computador.

Código: Selecionar todos

HB_WITH_MYSQL=C:\mysql\include
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Instalação e configuração do Harbour - Win64

Mensagem por JoséQuintas »

cjp escreveu:ão sei se entendi bem, mas tentei obter o retorno de dbusearea assim:
Não esse tipo.

Código: Selecionar todos

? LastRec()
? RecNo()
? Eof()
GOTO BOTTOM
GOTO TOP
? LastRec()
? RecNo()
? Eof()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Instalação e configuração do Harbour - Win64

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Não tem nada de será...
Tem um bug na CAMADA do RDD SQLMIX, já olhei só não sei corrigir. Sei o que é, mas não sei corrigir.
Penso que é um BUG na "herança" do RDD(CDX/NTX...) que não tem o BUG.
Não me referi ao bug, e sim ao problema em questão.
Pra tentar confirmar se tem a ver.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Instalação e configuração do Harbour - Win64

Mensagem por cjp »

Código: Selecionar todos

Por conta desses problemas eu prefiro ensinar a usar o Harbour compilando os fontes. Pq fica tudo 100% compatível.

No caso, basta baixar os fontes do Harbour pelo GIT e compilar, atenção em indicar onde esta instalado o MySql ai no seu computador.
Desculpe a ignorância, mas poderia me explicar melhor: o que seria baixar os fontes do Harbour pelo GIT?

Descobri agora que a string de conexão está retornando em branco quando compilado pela nova versão do Harbour.
Inacio de Carvalho Neto
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Instalação e configuração do Harbour - Win64

Mensagem por cjp »

Alguém poderia me ajudar?
Inacio de Carvalho Neto
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Instalação e configuração do Harbour - Win64

Mensagem por JoséQuintas »

Eu testei uma vez SQLMIX e não lembro mais.

Tem opção de usar HBMYSQL, isso depende da geração com DLL do MySQL
Tem opção de usar ODBC.

Harbour 32 bits precisa da ODBC 32 bits
Harbour 64 bits precisa da ODBC 64 bits

Então, seu aplicativo pode estar funcionando perfeito em 32 bits, mas dar erro em 64 bits por faltar instalar o ODBC 64 bits.

Nas outras alternativas de SQLMIX não sei dizer, porque não uso.
Eu preferi nunca usar nada opcional, nada que dependa de ficar procurando componente pra baixar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder