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

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

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

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

Mensagem por cjp »

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:

Código: Selecionar todos

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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem por JoséQuintas »

Código: Selecionar todos

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 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:

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

Mensagem por cjp »

Segue a mensagem de erro.
Acho que é mesmo o problema no conector, né?
Como resolver?
Anexos
tela.png
Inacio de Carvalho Neto
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

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

Mensagem por alxsts »

Olá!

Por acaso instalou o driver odbc neste novo computador?
[]´s
Alexandre Santos (AlxSts)
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

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

Mensagem por cjp »

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: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

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

Mensagem por cjp »

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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem por JoséQuintas »

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 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/
gilbertosilverio
Usuário Nível 3
Usuário Nível 3
Mensagens: 339
Registrado em: 18 Jan 2009 10:39
Localização: Ribeirao Pires - SP

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

Mensagem por gilbertosilverio »

Ola,

Tenta alterar seu drive,

Código: Selecionar todos

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

Código: Selecionar todos

      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
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

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

Mensagem por cjp »

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: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

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

Mensagem por cjp »

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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem por JoséQuintas »

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 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:

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

Mensagem por cjp »

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
Responder