Clipper On Line • Ver Tópico - ADO e ODBC

ADO e ODBC

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

Moderador: Moderadores

 

ADO e ODBC

Mensagempor JoséQuintas » 20 Mar 2019 19:34

Mario Mesquita escreveu:Aliás, qual a melhor versão do MySql pra se usar? Qualquer uma, a última?


Geralmente vou no MySQL community server e baixo a que estiver lá, menos a 8.0, porque depende de ODBC novo, e nem olhei a string dessa versão.

Voltando ao uso do Excel, este fonte converte qualquer planilha pra fonte PRG.

https://github.com/JoseQuintas/JoseQuintas/blob/master/drafts/xlstoprg.prg
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: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

ADO e ODBC

Mensagempor JoséQuintas » 20 Mar 2019 19:52

Mario Mesquita escreveu:É essa coisa que queria entender pra testar em rede, enfim aprender como prepara na rede do cliente. Nesse ponto, os DBFs são sopinha no mel, rs.


1) O mesmo que instalou em sua máquina vai instalar no cliente

2) Tem também a configuração de firewall do Windows e/ou MySql Remoto

3) Em termos gerais, local usa Server=localhost, e não sendo local pode ser Server=nomeservidor, Server=192.168.1.1
E no servidor MySQL, liberar direitos pra acesso de fora (usuário@% ou usuário@192.168.1.2)
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: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

ADO e ODBC

Mensagempor Mario Mesquita » 21 Mar 2019 20:49

Boa noite a todos.

Pessoal, obrigado pelas respostas. Sempre bom saber com quem tem experiência, já fez e como fez. Sei que depois que pega o jeito, fica tranquilo.

Confesso que ainda não entendi bem: Se sem o Xampp não conecta à base, o que devo fazer para isso? Configurar o ADO? Dispensa o ODBC? Perdoem a ignorância. Acho que as minhas tarefas não estão me deixando alcançar bem, parece fácil.

Tenho um velho desktop que tenho usado muito pouco e adiante pretendo montar uma pequena rede pra simular o ambiente de clientes.

Lá tem um MySql se não me engano. Versão 5 ou 6, creio que instalei há uns dois anos atrás para um pequeno trabalho. Já é um ponto de partida.

Seriam essas as versões mais adequadas pra rodar com o Harbour?

Eu, como vocês, vive com pouco tempo pra estudar infelizmente. Mas em horas vagas, fins de semana, dedicar algumas horas pra pegar a manha.

Muito obrigado. Talvez no futuro, encha o saco de vcs mais um pouco.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

ADO e ODBC

Mensagempor JoséQuintas » 21 Mar 2019 22:04

Mario Mesquita escreveu:Sempre bom saber com quem tem experiência, já fez e como fez. Sei que depois que pega o jeito, fica tranquilo.


O "conceito" é sempre o mesmo.

Não instalamos servidor todo dia, às vezes demora muito, e tem atualização de software, então de certa forma é como se fosse sempre novidade.
Por isso fica difícil um passo a passo, ou porque em outra versão é um pouco diferente, ou porque não lembramos mais dos detalhes, e vamos fazendo conforme precisamos/lembramos.... rs

Alguns ajustes manuais que eu fazia antes, agora não preciso mais, porque a instalação do MySQL passou a usar como padrão.
No momento só restou ajustar o cache do innoDB, como ajuste adicional.
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: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

ADO e ODBC

Mensagempor Mario Mesquita » 22 Mar 2019 09:39

Bom dia a todos!

Quintas, obrigado. Estou relendo seu "Tutorial de ADO", muito bom para quem está engatinhando como eu.

Mas o que é o típico? rs Instala o MySql, configura para ou pelo ADO, e bola pra frente? Acho que fiquei com aquele "acesso nativo" na cabeça. Sendo assim, pode dispensar o ODBC? Quanto mais simples e funcional, melhor. Ainda mais quando se tem que atender clientes por acesso remoto, como creio que muitos aqui.

Vendo o site do MySql, vi que não existe versão 6. Da 5.7.xx pula pra 8. Essa 5.7 roda tranquilo no Harbour? Pensei em baixar essa para os meus estudos.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

ADO e ODBC

Mensagempor JoséQuintas » 22 Mar 2019 10:13

Mario Mesquita escreveu:Essa 5.7 roda tranquilo no Harbour? Pensei em baixar essa para os meus estudos.


Na prática todos rodam. O que altera é na hora de criar a string de conexão.

cn := win_OleCreateObject( "ADODB.Connection" )
cn:ConnectionString := "aqui altera"


De um modo geral, o que altera é a connection string, seja MySQL, Excel, etc.

Uma referência interessante, pra ver opções:

https://www.connectionstrings.com/

Não me pergunte que banco de dados são esses:

Access, Active Directory, AS/400, Caché, Composite Information Server, ComputerEase, DBF / FoxPro, DBMaker, DSN, EffiProz, Empress, Excel, Exchange, Filemaker, Firebird, HTML Table, IBM DB2, Index Server, Informix, Ingres, Integration Services, Interbase, Intuit QuickBase, Lightbase, Lotus Notes, Mimer SQL, MS Project, MySQL, Netezza DBMS, OData, OLAP, Analysis Services, OpenOffice SpreadSheet, Oracle, Paradox, Pervasive, PostgreSQL, Progress, RSS / Atom, SAS, SharePoint, SQL Azure, SQL Server, SQL Server Compact, SQLBase, SQLite, Sybase Adaptive, Sybase Advantage, Teradata, Textfile, UDL, UniData, UniVerse, Valentina, Vertica, VistaDB, Visual FoxPro, Windows Azure Storage, ZIM
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: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

ADO e ODBC

Mensagempor JoséQuintas » 22 Mar 2019 10:25

Alguns exemplos pra MySQL do site:

2.50: "Driver={mySQL};Server=myServerAddress;Option=131072;Stmt=;Database=myDataBase;
User=myUsername;Password=myPassword;"

3.51: "Driver={MySQL ODBC 3.51 Driver};Server=myServerAddress;Database=myDataBase;
User=myUsername;Password=myPassword;Option=3;"

5.1: "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=myDataBase;
User=myUsername;Password=myPassword;Option=3;"

5.1 64 bits: "Provider=MSDASQL;Driver={MySQL ODBC 5.1 Driver};Server=localhost;
Database=myDataBase;User=myUsername;Password=myPassword;Option=3;"

5.2: "Driver={MySQL ODBC 5.2 ANSI Driver};Server=localhost;Database=myDataBase;
User=myUsername;Password=myPassword;Option=3;"

5.2 unicode: "Driver={MySQL ODBC 5.2 UNICODE Driver};Server=localhost;Database=myDataBase;
User=myUsername;Password=myPassword;Option=3;"

Usei no VB6 pra ADS:

Case "ADSLOCAL"
cString = "Provider=Advantage.OLEDB.1;" & _
"Mode=Share Deny None;" & _
"Show Deleted Records in DBF Tables with Advantage=False;" & _
"Data Source=" & Sistema.PathDefault & ";Advantage Server Type=ADS_Local_Server;" & _
"TableType=ADS_CDX;Security Mode=ADS_IGNORERIGHTS;" & _
"Lock Mode=Compatible;" & _
"Use NULL values in DBF Tables with Advantage=True;" & _
"Exclusive=No;Deleted=No;"
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: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

ADO e ODBC

Mensagempor Mario Mesquita » 22 Mar 2019 10:42

Uau!

Olha quanta coisa para uma coisa "simples", eheheh Que tanta BD é essa? Nem preciso saber, minhas válvulas já estão quentes com essas coisas pra aprender.

Valeu, Quintas! Sempre com as soluções na cartola. Vou estudar isso tudo, junto com o tutorial. Isso é da API do Windows né? Não precisa instalar nada?

Muitíssimo obrigado por compartilhar sua experiência. Ajuda a gente a defender o feijão com arroz de cada dia.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

ADO e ODBC

Mensagempor JoséQuintas » 22 Mar 2019 11:24

Mario Mesquita escreveu:Isso é da API do Windows né? Não precisa instalar nada?


O ADO faz parte do Windows, é o intermediário pra tudo.
Mas a Microsoft não inclui pra tudo, só para o que é dela.
Pra MySQL e outros, precisa instalar o ODBC.

Harbour acessa o ADO, passando a string, e trabalha.

O ADO usa o ODBC pra conversar com o banco de dados. Se tiver no Windows ok, senão precisa instalar o ODBC correspondente.
O ODBC de tudo não vém instalado no Windows, porque a responsabilidade de cada banco de dados é do próprio fabricante.
Senão a Microsoft teria que ficar dando suporte pra tudo, e teria que ficar atualizando o que não atualizassem....
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: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

ADO e ODBC

Mensagempor Mario Mesquita » 22 Mar 2019 11:55

Entendi.

Então esse "acesso nativo" não faz muito sentido. Se não se escapa do ODBC e do ADO, são apenas funções do sistema pra dentro. Sem esses recursos, o sistema fica cego. Mas pra ser justo, não importa a linguagem, isso é pra todos, acredito. Colega meu usa Visual Fox e usa MS SQL com ODBC, sem ADO. Tá me incentivando a usar o MS, mas pouco tem aqui sobre ele. Se o MySql é o mais usado e funciona direito, por que não ele, não é?

Isso tem que ser feito em todas as máquinas que acessem o seu sistema, né? E prestando atenção no Windows de cada máquina. Se é XP, 7, 8 ou 10. Se é 32 ou 64.

Bom, faz parte né? Pelo que vcs dizem é preparar e não esquentar a cabeça. Bom que aqui eu tenho uns aparelhos velhos e posso testar algumas condições pra pegar experiência.

De novo, muito agradecido a você e aos colegas.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

ADO e ODBC

Mensagempor JoséQuintas » 22 Mar 2019 12:38

Mario Mesquita escreveu:Colega meu usa Visual Fox e usa MS SQL com ODBC, sem ADO. Tá me incentivando a usar o MS, mas pouco tem aqui sobre ele. Se o MySql é o mais usado e funciona direito, por que não ele, não é?


sqlserver.png
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: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

ADO e ODBC

Mensagempor Mario Mesquita » 22 Mar 2019 19:52

Eita!!!

Ele usa a versão Express. Se o BD tem até 10GB é viável. Senão, é essa paulada aí mesmo. Para mim, até daria. Nada meu atinge 1 giga.

Mas se com farto material aqui de MySql já tenho que me esforçar para ter domínio razoável, imagina uma BD com pouca literatura para Harbour. Não lembro de ter visto aqui exemplos práticos de conexão ao MS-SQL.

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

ADO e ODBC

Mensagempor paulovirt » 05 Ago 2019 12:16

Senhores

Eu conecto no mysql dessa forma:

conexao:=CreateObject("ADODB.Connection")
conexao:open("DRIVER={MySQL ODBC 3.51 Driver};" + ;
"server=localhost" + ;
";database=nome_do_banco" + ;
";uid=usuario" + ;
";pwd=senha")
oCursor:=CreateObject("ADODB.Recordset")

Depois uso as funções do SQL normalmente

Eu gostaria de saber uma forma de testar a conexão, ou seja, que seja verificado se o servidor está ativo, se a senha, banco de dados estão corretos, ou seja, algo que verifique e responda "servidor inoperante" por exemplo. Um teste de conexão

Abraços
Avatar de usuário

paulovirt
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 69
Data de registro: 29 Jan 2007 09:00
Curtiu: 3 vezes
Mens.Curtidas: 0 vez

ADO e ODBC

Mensagempor MSDN » 05 Ago 2019 13:05

Se usar somente o MySQL, a classe TMySQL seria a melhor opção, só precisa ter a DLL do MySQL na mesma pasta do EXE e apontar o IP do banco.
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes

ADO e ODBC

Mensagempor JoséQuintas » 05 Ago 2019 18:34

paulovirt escreveu:Eu gostaria de saber uma forma de testar a conexão, ou seja, que seja verificado se o servidor está ativo, se a senha, banco de dados estão corretos, ou seja, algo que verifique e responda "servidor inoperante" por exemplo. Um teste de conexão


Precisa confirmar.

lOK := .F.
BEGIN SEQUENCE WITH __BreakBlock()
   conexão:Open()
   lOk := .T.
ENDSEQUENCE
IF ! lOk
   ? "Não conseguiu conectar"
ENDIF
RETURN lOk


a variável é false
Se conectar, executa a linha seguinte que atribui verdadeiro.
Se der erro não vai executar a linha seguinte, e fica no falso.
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: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Anterior



Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 19 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