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

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

Moderador: Moderadores

alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

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

Mensagem por alxsts »

Olá!
cjp escreveu:De fato, o que vc diz faz sentido: eu devo ter acrescido alguma coisa para usar o SQLMIX no Harbour velho, e precisarei fazer o mesmo neste novo. O único problema é que eu não lembro o que foi. Vou tentar achar.
Deves ter feito alguma coisa errada...

Adaptei um exemplo postado pelo Itamar no tópico MYSQL SQLMIX, conectando e criando base e tabela via SQL. Compilei com meu Harbour 3.20 Nightly e funcionou normalmente, usando MariaDB 10:
Capturar.JPG
Informe a versão deste Harbour que você acabou de instalar.

Verifique seu código. Creio que o problma esteja nele e não no Harbour.

Código: Selecionar todos

// Compilar: hbmk2 teste sddodbc.hbc

#require "rddsql"
#require "sddodbc"

#include "dbinfo.ch"
#include "simpleio.ch"
REQUEST SQLMIX, SDDODBC

PROCEDURE Main()

   LOCAL nConnection, nI, aI

   #if defined( __HBSCRIPT__HBSHELL )
      rddRegister( "SQLBASE" )
      rddRegister( "SQLMIX" )
   #endif

   SetMode( 43,80 )
   CLS

   Set( _SET_DATEFORMAT, "yyyy-mm-dd" )

   rddSetDefault( "SQLMIX" )
   nConnection := rddInfo( RDDI_CONNECT, { "ODBC", "DRIVER={MariaDB ODBC 3.1 Driver};TCPIP=1;SERVER=localhost;Database=test;UID=root;PWD=root;PORT=3306" } )
                                                
   IF nConnection == 0
      ? "Could not connect to server", rddInfo( RDDI_ERRORNO ), rddInfo( RDDI_ERROR )
      RETURN
   ENDIF
   // nConnection
   RddInfo( RDDI_EXECUTE, "CREATE DATABASE IF NOT EXISTS `basedados`" )
   RddInfo( RDDI_EXECUTE, "USE `basedados`" )
   RddInfo( RDDI_EXECUTE, "DROP TABLE country" )
   RddInfo( RDDI_EXECUTE, "CREATE TABLE country (CODE char(3), NAME char(50), RESIDENTS int(11))" )
   RddInfo( RDDI_EXECUTE, "INSERT INTO country values ('LTU', 'Lithuania', 3369600), " + ;
                                                     "('USA', 'United States of America', 305397000), " + ;
                                                     "('POR', 'Portugal', 10617600), " + ;
                                                     "('POL', 'Poland', 38115967), " + ;
                                                     "('AUS', 'Australia', 21446187), " + ;
                                                     "('BRA', 'Brazil', 205000000), " + ;
                                                     "('FRA', 'France', 64473140), " + ;
                                                     "('RUS', 'Russia', 141900000)" )

   dbUseArea( .T., , "SELECT * FROM country ORDER BY name", "country" )
   
   DispOutAt( 09, 30, Version() )
   Browse(10, 20, 22, 60)

   dbCloseAll()

   RETURN
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

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

Mensagem por alxsts »

Olá!

Complementando:
faça um teste com o código acima. Altere apenas a string de conexão, colocando a que você usa para conectar ao teu BD. Compile com o teu Harbour novo e informe se funcionou.
[]´s
Alexandre Santos (AlxSts)
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 »

alxsts escreveu:Deves ter feito alguma coisa errada...
O SQLMIX, como o próprio nome diz, é um mix.
Pelo jeito, nessa opção de ODBC dispensa bibliotecas adicionais.
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 »

Realmente eu devo estar fazendo algo errado.
Primeiro, notei a falta do arquivo sddodbc.hbc na pasta do novo Harbour. Copiei o arquivo da pasta do velho para o novo, mas mesmo assim o meu sistema não funcionou.
Daí compilei o teu exemplo no novo Harbour, e funcionou.
Então, fica evidente que tem algum erro no meu sistema. O problema é que, no velho Harbour, ele funciona, mas no novo não!
A versão que apareceu ao executar o teu exemplo foi a Harbour 3.2.0dev (r2104281802).
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 »

cjp escreveu:Daí compilei o teu exemplo no novo Harbour, e funcionou.
SQLMIX é uma mistura de tudo, sendo que talvez existam 3 formas de usar MySQL.
Talvez nos seus fontes esteja usando uma forma diferente.
Tem também o detalhe da string ODBC.
Se sua string usa MySQL, mas essa usa MariaDB, com certeza cada rotina precisa de um ODBC diferente instalado.
Comece conferindo a string de conexão que está usando.
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 »

Acho que a string está igual. Veja:

Código: Selecionar todos

            ODBC_MARIADB=Mariadb_StringConexao() 
			
                    nConnection := RDDINFO( 1001, { "ODBC", "Server=;" + ODBC_MARIADB + ";dsn=;User=;pwd=;database=inaciocarvalho;" } )

FUNCTION Mariadb_StringConexao()
         LOCAL cTxt := ""
            cTxt += "Driver={MariaDB ODBC 3.1 Driver}"
		 
RETURN cTxt
  
Editado pela última vez por Itamar M. Lins Jr. em 02 Jun 2021 13:46, em um total de 1 vez.
Razão: Apagado algumas informações por questões de segurança.
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á!

32 é diferente de 64.
Precisa instalar o(s) pacote(s) para 64. MariaDb e/ou MySQL.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

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

Mensagem por alxsts »

Olá!

Cuidado: você postou as credenciais de logon no teu provedor de BD. Qualquer um pode entrar lá e sabotar o teu BD...
[]´s
Alexandre Santos (AlxSts)
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 »

Aqui eu tenho um fonte só pras senhas.
Fiz isso justamente porque de vez em quando postava com informações, ou, por engano, alterava pra postar e salvava, perdendo as informações.
Com fonte separado, mesmo que poste os outros fontes completos, as senhas não vão estar lá.
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 »

De fato eu vacilei em publicar senha aqui, foi esquecimento. Obrigado.
32 é diferente de 64.
Precisa instalar o(s) pacote(s) para 64. MariaDb e/ou MySQL.
Poderia me indicar qual o pacote mais indicado para instalar?

Por curiosidade, como vc verificou que eu não tenho o pacote para 64? No código que eu postei não vi nada que indicasse.
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 »

cjp escreveu:Poderia me indicar qual o pacote mais indicado para instalar?
Por curiosidade, como vc verificou que eu não tenho o pacote para 64? No código que eu postei não vi nada que indicasse.
Na prática depende do aplicativo em Harbour.
Se o aplicativo é 32 bits, precisa do ODBC 32 bits, não importa se o Windows for 64 bits.

Se compilou o teste do mesmo jeito que compilou o aplicativo, o que precisa já está instalado, porque significa que os dois são 32 bits, ou os dois são 64 bits.
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 »

Pra forçar 32 bits: SET HB_COMPILER=mingw ou bcc ou msvc
Pra forçar 64 bits: SET HB_COMPILER=mingw64 ou bcc64 ou msvc64

Só vai compilar se existirem compilador e LIBs compatíveis, senão, vai dar erro no que não tiver instalado.
Opcionalmente o parâmetro -comp: hbmk2 xxx.hbp -comp=mingw

Só mexa nisso se precisar tirar alguma dúvida, e volte à forma de sempre depois.
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á!
No código que eu postei não vi nada que indicasse.
Pq funciona com o antigo. Não poderia funcionar caso fosse 64.

E aqui é "titulo do post" configuração para 64.

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 »

Pensando bem.... Vamos recapitular.

Compila normalmente, não dá erro, apenas não faz o browse.

Lembro de algum comentário sobre bug no SQLMIX de ter que posicionar registro.
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.

Vai ter que ser por exclusão:
Acho que se a string estivesse errada, haveria mensagem de erro.
Acho que se faltasse alguma coisa, também haveria mensagem de erro.
Sobra verificar qual é o resultado do comando, ou se está posicionado em fim de arquivo.

Lembrando que há pouco tempo tive aquela diferença, que em determinada situação o retorno era diferente do normal.
De repente, aí aconteceu parecido ao fazer o teste do retorno.
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á!
Não penso que seja esse o problema. Simplesmente funciona com antigo e a diferença é a extração da lib.
A SQLMIX(RDDSQL) extrai da DLL a LIB. Precisa saber se é 32 ou 64.
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.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder