ADO e ODBC

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

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

ADO e ODBC

Mensagem por JoséQuintas »

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/JoseQuin ... stoprg.prg
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

ADO e ODBC

Mensagem por JoséQuintas »

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 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
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

ADO e ODBC

Mensagem por Mario Mesquita »

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

ADO e ODBC

Mensagem por JoséQuintas »

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 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
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

ADO e ODBC

Mensagem por Mario Mesquita »

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

ADO e ODBC

Mensagem por JoséQuintas »

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.

Código: Selecionar todos

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

ADO e ODBC

Mensagem por JoséQuintas »

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 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
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

ADO e ODBC

Mensagem por Mario Mesquita »

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

ADO e ODBC

Mensagem por JoséQuintas »

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 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
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

ADO e ODBC

Mensagem por Mario Mesquita »

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

ADO e ODBC

Mensagem por JoséQuintas »

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 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
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

ADO e ODBC

Mensagem por Mario Mesquita »

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 do usuário
paulovirt
Usuário Nível 2
Usuário Nível 2
Mensagens: 69
Registrado em: 29 Jan 2007 10:00
Contato:

ADO e ODBC

Mensagem por paulovirt »

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
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

ADO e ODBC

Mensagem por MSDN »

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

ADO e ODBC

Mensagem por JoséQuintas »

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.

Código: Selecionar todos

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