Clipper On Line • Ver Tópico - Tutorial de ADO

Tutorial de ADO

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Tutorial de ADO

Mensagempor JoséQuintas » 02 Jun 2018 22:01

Apenas palpite:
Provavelmente o MySQL precisa fazer o select completo, desde o primeiro até a quantidade que atenda o limit.
18001,19000 vai pegar os primeiros 19000 e usar somente os últimos 1000.
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tutorial de ADO

Mensagempor jelias » 24 Jan 2021 20:31

José Quintas, parabéns pelo lindo trabalho.

Não me recordo agora, mais li em algum lugar aqui que a conexão via ADO cai em alguns momentos sem nenhum motivo aparente.

Isso procede?

Saudações,

Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
jelias
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 249
Data de registro: 27 Ago 2008 11:32
Cidade/Estado: Minas Gerais
Curtiu: 0 vez
Mens.Curtidas: 16 vezes

Tutorial de ADO

Mensagempor asimoes » 24 Jan 2021 22:10

Estou usando MariaDb a 1 ano e não tenho essa ocorrência, como migrei de dbf para o MariaDb a minha preocupação é somente com demandas do usuário

Tem usuário mal intencionado, desliga o servidor, tem todo tipo de sacanagem, enfim não tenho essa preocupação, já tive no passado quando tinha sistema na Domino´s Pizza
Até cabo de rede cortavam
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Tutorial de ADO

Mensagempor jelias » 25 Jan 2021 11:13

Amigo Alexandre,

Agradeço por compartilhar sua experiência com o ADO. Eu achei a conversa entre o Itamar e o Quintas que me gerou esta dúvida.

http://www.pctoledo.com.br/forum/viewtopic.php?f=4&t=24528&p=142672&hilit=ado+caindo#p142672

Pude notar que o comentário é específico ao conector 3.51, algo que o Quintas atribui como normal cair.

Saudações,

Júlio
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
jelias
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 249
Data de registro: 27 Ago 2008 11:32
Cidade/Estado: Minas Gerais
Curtiu: 0 vez
Mens.Curtidas: 16 vezes

Tutorial de ADO

Mensagempor Itamar M. Lins Jr. » 25 Jan 2021 11:31

Olá!
Eu lembro. O problema que já vi "n" vezes isso acontecendo. Seria bom alguém com mais experiência para falar disso, com 10, 15 maquinas em um balcão, com muito movimento, se cair 3 vezes já é um terror.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Tutorial de ADO

Mensagempor asimoes » 25 Jan 2021 12:09

jelias escreveu:Pude notar que o comentário é específico ao conector 3.51, algo que o Quintas atribui como normal cair.

Uso o conector mariadb-connector-c-3.1.9-win32, realmente a rede é pequena 5 computadores, posso não ser referência pra problemas
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Tutorial de ADO

Mensagempor JoséQuintas » 25 Jan 2021 12:24

De forma simples:

É que ensinam a usar a conexão 3.51 de 20 anos atrás, aí não tem conexão que fique no ar.
Além disso, ensinam a usar igual Linux, e isso não vai.

odbc.png


Ele é de quase 20 anos atrás.
Muita coisa mudou de lá pra cá.
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tutorial de ADO

Mensagempor jelias » 25 Jan 2021 13:09

Entendido amigos,

Estou fazendo testes com o MySQL Conector 8.0 ANSI Driver. Até agora fiz a conexão e deu tudo certo. Em breve darei continuidade gravando e extraindo dados.

Saudações,

Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
jelias
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 249
Data de registro: 27 Ago 2008 11:32
Cidade/Estado: Minas Gerais
Curtiu: 0 vez
Mens.Curtidas: 16 vezes

Tutorial de ADO

Mensagempor microvolution » 25 Jan 2021 23:31

asimoes escreveu:migrei de dbf para o MariaDb
amigos boa noite!
me perdoem a(s) pergunta(s) que podem ser "idiotas" pra quem é profundo conhecedor, mas, pra mim... são novidades!
Veja tanto em falar em LETODB, MARIADB, etc...
O que são essas base de dados?
Qual diferença entre DBF e elas?
O que tem a ver com as MYSQL, SQL, etc?

desculpem-me por favor!
Mas, quando alguém diz que migrou de DBF para esse "MariaDB" ou qualquer outro que tenha nome semelhante, o que temos que mudar no sistema (linhas de código) e o que de melhoria temos?

desculpem, desculpem as perguntas, por favor!!!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

Tutorial de ADO

Mensagempor jelias » 26 Jan 2021 16:49

Amigo Microvolution,

Irei assumir que está amplamente familiarizado com o DBF, visto que o amigo é parte deste rol de amantes do xBase há muito tempo. Em uma breve abordagem, acredito que muitos tiveram seu primeiro contato com o xBase pelo Clipper, então nesta fase, poderia usar o SGBD DBF com os seguintes RDD´s. (os principais):
a) DBF/NTX
b) DBF/CDX
c) DBF/NSX (Six 3.0)

Banco de Dados DBF - está parado no tempo há muitos anos e sabemos que vivemos a maior demanda de armazenamento de dados da história, e isso, claro, exige avanços no tratamento destas informações. O projeto denominado LETODB, que hoje tem um fork LETODB(f), melhorou muito a forma de comunicação com o bando de dados, trazendo uma "semelhança" na forma como os dados trafegam em rede, em relação aos banco de dados relacionais. Basicamente funciona assim, você instala o arquivos DBF´s em uma pasta no servidor, instala o LETODB(f) e configura conforme os parâmetros, e não precisa mapear a pasta do servidor nas estações. Isso sem dúvidas melhora muito, continua usando DBF/CDX e o LETODB só faz o tráfego na rede do registro que está sendo acessado, não do arquivo todo. Reduz o tráfego de rede, aumenta a velocidade, segurança, etc.
Para melhor compreensão do assunto, sugiro estudar estes links.
http://www.pctoledo.com.br/forum/viewtopic.php?f=42&t=8167
http://www.pctoledo.com.br/forum/viewtopic.php?f=42&t=15108
http://www.pctoledo.com.br/forum/viewtopic.php?f=42&t=18083

Conteúdo riquíssimo nos links acima. Impossível passar aqui os ganhos com o LETODB(f), mais eu faço uso e posso lhe afirmar que deu uma sobrevida aos meus projetos. Não muda muita coisa, basicamente todos os comandos que você já usava vai ser aproveitado.

Bancos de dados SQL (Linguagem de Consulta Estruturada) - de forma simples, são banco de dados mais evoluídos, que suportam grandes demandas e possuem recursos que facilitam a comunicação, entre a solicitação e entrega dos dados ao operador.

Existem muitos bancos de dados SQL, alguns pagos como (Oracle, SQL Server), outras distribuições não pagas, exemplos PostgreSQL, MariaDB, MySql, FireBird), etc. A lista é muito grande.
https://db-engines.com/en/ranking

Importante saber, todos os comandos de comunicação com o bando de dados irá mudar, visto que você assumira os "famosos" comandos SQL, mais fique tranquilo, vai aprender rapidamente.
https://becode.com.br/comandos-sql-nao-pode-viver-sem/

São conceitos diferentes aos que estamos acostumados, porém o importante é saber que você envia uma solicitação ao banco de dados que está no servidor, toda solicitação será tratada no servidor e assim que estiver pronta, enviada ao destino. Sendo assim, todo o processamento é feito no servidor. Em termos de segurança a evolução é gigantesca. Vale a pena o upgrade.

http://www.pctoledo.com.br/forum/viewtopic.php?f=42&t=24040

Espero ter ajudado com um começo!

Saudações,

Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
jelias
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 249
Data de registro: 27 Ago 2008 11:32
Cidade/Estado: Minas Gerais
Curtiu: 0 vez
Mens.Curtidas: 16 vezes

Tutorial de ADO

Mensagempor JoséQuintas » 26 Jan 2021 21:20

Complementando:

Compare DBF com usar planilhas Excel em disco, tem que mexer lá na planilha.
Compare SQL com usar whatsapp, é trocar mensagens com o servidor.

Muda muito?
Com certeza, porque uma coisa não tem nada a ver com a outra.

É vantagem trocar?
Já sabe que vai ter que alterar TUDO.
Pode levar 6 meses ou mais pra alterar o aplicativo.

SQL é muito melhor, o que tem que se perguntar é quais aplicativos está disposto a alterar.
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tutorial de ADO

Mensagempor Itamar M. Lins Jr. » 26 Jan 2021 21:49

Olá!
está parado no tempo há muitos anos e sabemos que vivemos a maior demanda de armazenamento de dados da história,

Não é o caso do RDD DBF/CDX/NTX do Harbour, pois tem muita coisa que não tem em outros DBF's (RDD) mais antigos.
O DBF do Harbour é atualizado para 64Bit e a capacidade em terabytes! Entre outras coisas. Até o campo MEMO é diferente.
Tem BLOB, Auto Incremento, etc...
Harbour File Size Limits

    Max record size: 2^16-1 = 65535 byts ( 64 MB )
    Max number of recors : 2^32-1 = 4,294,967,295 ( 4 Bilion )
    Max .dbf file size : 2^48 = 256 TB
    Max DBT memo file size : 2 TB
    Max FPT memo file size : 256 GB
    Max SMT memo file size : 128 GB
    Max NTX file size (standard) : 4GB
    Max NTX file size (incresead ) : 4TB
    Max CDX file size : 4GB
...
*
Harbour extended Field Types

Type Short
Code Name Width (Bytes) Description
---- ------- ----------------- -------------------------------------------------------------------
D Date 3, 4 or 8 Date
M Memo 4 or 8 Memo
+ AutoInc 4 Auto increment
= ModTime 8 Last modified date & time of this record
^ RowVers 8 Row version number; modification count of this record
@ DayTime 8 Date & Time
I Integer 1, 2, 3, 4 or 8 Signed Integer ( Width : )" },;
T Time 4 or 8 Only time (if width is 4 ) or Date & Time (if width is 8 ) (?)
V Variant 3, 4, 6 or more Variable type Field
Y Currency 8 64 bit integer with implied 4 decimal
B Double 8 Floating point / 64 bit binary


Tem muita coisa "nova" no DBF do Harbour e muitos usuários dele não sabem.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Tutorial de ADO

Mensagempor jelias » 27 Jan 2021 09:51

Itamar,

Grato por compartilhar sobre as melhorias do DBF no Harbour.

Saudações,

Júlio
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
jelias
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 249
Data de registro: 27 Ago 2008 11:32
Cidade/Estado: Minas Gerais
Curtiu: 0 vez
Mens.Curtidas: 16 vezes

Tutorial de ADO

Mensagempor JoséQuintas » 27 Jan 2021 15:26

Também dá pra usar ADS LOCAL, e usar DBF através de comandos SQL.
Fica muito melhor do que usar direto.

Usar DBF por ADS + ADO é extremamente mais rápido do que usar o DBF só pelo Harbour.
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tutorial de ADO

Mensagempor sasquast » 03 Mai 2022 12:49

Pessoal,

Primeiramente gostaria de agradecer imensamente a todos aqui, principalmente ao Sr José Quintas. Graças a vocês consegui fazer todos os passos de um programa básico, conexão, inclusão, consulta, alteração e exclusão no MySQL pelo ADO.

Agora que está tudo funcionando começam os questionamentos de performance.

Fiz um programa que basicamente lê um DBF e copia os registros para o banco no MySQL, funcionando perfeitamente, no entanto, em média, para copiar 30 mil registros demora 4 minutos.

O mesmo processo, só que copiando de um DBF para outro DBF, demora 5 segundos.

Há alguma forma de otimizar isso ? Já tentei dezenas de alternativas, todas alterando configurações do MySQL, criando indices, alterando my.ini, mas nenhuma deu resultado significativo. Acredito que a melhora, se houver, depende do fonte agora.

No momento, essa parte do código com o Insert está assim:

do while &WMACRO

      @ 06,16 say str(WQTD)
      @ 07,19 say CARRO

      WCARRO      = alltrim(CARRO)
      WMCT        = alltrim(MCT)
      WLATITUDE   = alltrim(LATITUDE)
      WLONGITUDE  = alltrim(LONGITUDE)
      WDATA       = dtos(DATA)
      WHORA       = alltrim(HORA)
      WVELOC      = alltrim(str(VELOC))
      WLOCAL      = alltrim(LOCAL)

      oConexao:Execute( "INSERT INTO QTRACS (CARRO, MCT, LATITUDE, LONGITUDE, DATA, HORA, VELOC, LOCAL) VALUES ('"+WCARRO+"', '"+WMCT+"', '"+WLATITUDE+"', '"+WLONGITUDE+"', "+WDATA+", '"+WHORA+"', "+WVELOC+", '"+WLOCAL+"')")

      WQTD = WQTD + 1
      skip +1
enddo


Obrigado.
sasquast
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 26
Data de registro: 31 Jul 2019 16:47
Cidade/Estado: Volta Redonda / RJ
Curtiu: 28 vezes
Mens.Curtidas: 0 vez

Anterior Próximo



Retornar para Contribuições, Dicas e Tutoriais

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