Clipper On Line • Ver Tópico - MySQL: conexão com ADO que não funciona

MySQL: conexão com ADO que não funciona

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

MySQL: conexão com ADO que não funciona

Mensagempor cjp » 14 Abr 2022 22:59

Pessoal, desde que troquei de computador, semana passada, estou tendo dificuldade para a conexão com meu banco MySQL, tanto em localhost (neste caso não está conectando nunca) como em provedor na internet (que às vezes conecta, às vezes não).
Fiz um programinha de teste:

PROCEDURE Main

   LOCAL oCN := ConexaoSQL(1)

setmode(41,70)
cls
   
   IF ! AbreConexao( oCN )
?"Não conectou"
inkey(11)   
      QUIT
   ENDIF
?"Conectou"
inkey(11)   
   oCN:Close()
   
RETURN

FUNCTION AbreConexao( oCN )

   BEGIN SEQUENCE WITH __BreakBlock()
      oCN:Open()
   ENDSEQUENCE
   
RETURN oCN:State != 0
   
FUNCTION ConexaoSQL( nProvedor )
   
   LOCAL cnConnection, cServer, cDatabase, cUser, cPassword, nPort := 3306

   hb_Default( @nProvedor, 1 )

   DO CASE
   CASE nProvedor == 1
      cServer   :="127.0.0.1"
      cDatabase :="inacio"
      cUser     :="inacio"
      cPassword :="*******"
   CASE nProvedor == 2
   ENDCASE

   cnConnection := win_OleCreateObject( "ADODB.Connection" )
   cnConnection:ConnectionString := ;
      MariaDB_StringConexao() + ";" + ;
      "Server=" + cServer + ";" + ;
      "Port=" + Ltrim( Str( nPort ) ) + ";" + ;
      "Database=" + cDatabase + ";" + ;
      "User=" + cUser + ";" + ;
      "Password=" + cPassword + ";" + ;
      "Collation=latin1;" + ;
      "AUTO_RECONNECT=1;"
   cnConnection:CursorLocation    := 3 // AD_USE_CLIENT
   cnConnection:CommandTimeOut    := 300 // seconds
   cnConnection:ConnectionTimeOut := 300 // seconds
   
RETURN cnConnection

FUNCTION Mariadb_StringConexao()
         LOCAL cTxt := ""
            cTxt += "Driver={MariaDB ODBC 3.1.6}"
RETURN cTxt


Só dá "não conectou".

Pelo Heidisql a conexão funciona sem problema, tanto no localhost quanto no provedor.

Estou achando que o problema pode ser o conector, mas não sei como resolver o problema.

Alguém pode me ajudar?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

MySQL: conexão com ADO que não funciona

Mensagempor JoséQuintas » 15 Abr 2022 17:55

BEGIN SEQUENCE WITH __BreakBlock()
   oCN:Open()
ENDSEQUENCE


Retira o BEGIN SEQUENCE/ENDSEQUENCE pra ver qual é a mensagem de erro.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

MySQL: conexão com ADO que não funciona

Mensagempor cjp » 15 Abr 2022 19:07

Segue a mensagem de erro.
Acho que é mesmo o problema no conector, né?
Como resolver?
Anexos
tela.png
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

MySQL: conexão com ADO que não funciona

Mensagempor alxsts » 15 Abr 2022 21:03

Olá!

Por acaso instalou o driver odbc neste novo computador?
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

MySQL: conexão com ADO que não funciona

Mensagempor cjp » 15 Abr 2022 22:11

Sim, foi instalado sim.
Tanto que a conexão com o provedor funciona na maior parte das vezes. Só às vezes não funciona.
Com o localhost é que não está funcionando nunca.
Pelo Heidisql funciona sempre. Mas o Heidisql não usa o ODBC né?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

MySQL: conexão com ADO que não funciona

Mensagempor cjp » 15 Abr 2022 22:32

Acho que isto prova que foi instalado. Posso ter feito algo errado na instalação (se bem que fiz a instalação típica), mas instalado foi.
Anexos
tela.png
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

MySQL: conexão com ADO que não funciona

Mensagempor JoséQuintas » 16 Abr 2022 08:07

cjp escreveu:Acho que isto prova que foi instalado. Posso ter feito algo errado na instalação (se bem que fiz a instalação típica), mas instalado foi.


Isso só mostra que instalou um ODBC, não que instalou o ODBC que o programa precisa.
Suponho que a string funcionava antes, mas me parece que pode estar indicando versão de forma errada, o que confunde tudo sobre funcionar antes, ou sobre não funcionar agora.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

MySQL: conexão com ADO que não funciona

Mensagempor gilbertosilverio » 16 Abr 2022 09:40

Ola,

Tenta alterar seu drive,

cTxt += "Driver={MariaDB ODBC 3.1.6}"


para

      cnConnection:ConnectionString += "Driver={MariaDB ODBC 3.1 Driver};"


Instalei o drive 3.1.6 win32 e win64, fiquei em duvida, mais deixei como estava na rotina do Quintas e nunca tive problema, sempre conecta.

Creio que e aqui que você deve ver como esta:
Anexos
t1.jpg
gilbertosilverio
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 332
Data de registro: 18 Jan 2009 09:39
Cidade/Estado: Ribeirao Pires - SP
Curtiu: 1 vez
Mens.Curtidas: 23 vezes

MySQL: conexão com ADO que não funciona

Mensagempor cjp » 16 Abr 2022 11:03

Essa função Mariadb_StringConexao() foi o Quintas que fez aqui quando eu estava mudando do MySQL para o MariaDB, para atender alguns computadores que ainda não estavam com MariaDB instalados. Mas ela agora realmente não é mais necessária.
Verifiquei o nome do drive instalado, como vc recomendou, e realmente tinha uma diferença. Está só MariaDB ODBC 3.1 Driver. Mudei no sistema. Funcionou para conexão com o provedor na internet.
Mas, para o localhost, continua dando erro (vide anexo). Creio que este erro não seja do conector. Mas já conferi os dados de conexão, estão corretos, e funcionam pelo HeidiSQL.
Testei também com o conector MySQL, dá o mesmo erro.
Anexos
tela.png
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

MySQL: conexão com ADO que não funciona

Mensagempor cjp » 16 Abr 2022 11:05

Isso só mostra que instalou um ODBC, não que instalou o ODBC que o programa precisa.
Suponho que a string funcionava antes, mas me parece que pode estar indicando versão de forma errada, o que confunde tudo sobre funcionar antes, ou sobre não funcionar agora.


Acho que estava apenas com o nome da versão errada. Neste ponto parece que o problema foi solucionado, correto?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

MySQL: conexão com ADO que não funciona

Mensagempor JoséQuintas » 16 Abr 2022 14:56

cjp escreveu:Essa função Mariadb_StringConexao() foi o Quintas que fez aqui quando eu estava mudando do MySQL para o MariaDB, para atender alguns computadores que ainda não estavam com MariaDB instalados. Mas ela agora realmente não é mais necessária.


O que deixa na dúvida sobre estar diferente de antes.

Agora está reclamando sobre o acesso estar liberado para o usuário.
Ou talvez o nome do banco de dados seja outro, o que novamente deixa na dúvida sobre funcionar antes e agora não.

Talvez no HeidiSQL acesse direto, sem dizer o nome do banco, e por isso funcione.

Como é a parte básica do MySQL.... deveria ser conhecida, porque sempre vai acontecer de instalar do zero.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

MySQL: conexão com ADO que não funciona

Mensagempor cjp » 16 Abr 2022 15:22

Como é a parte básica do MySQL.... deveria ser conhecida, porque sempre vai acontecer de instalar do zero.


Já fiz isso várias vezes, sempre deu certo. Não sei por que agora está dando problema.

Mas fui verificar melhor agora, e descobri o problema. No Heidi o usuário inacio estava acessando o localhost, mas não o banco de dados inacio. Já o usuário root acessava tudo sem problema. Daí foi fácil matar a charada: eu tinha esquecido de conceder privilégios para o usuário inacio.

Peço desculpas pela minha falta de atenção e agradeço todas as ajudas valiosas.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro