Clipper On Line • Ver Tópico - Resources em MySQL

Resources em MySQL

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

Moderador: Moderadores

 

Resources em MySQL

Mensagempor JoséQuintas » 01 Ago 2021 20:05

Só recapitulando o que já está em outro post:

Na internet criei WEBBINARY, com os campos nome, data, conteúdo.
No aplicativo, no servidor local, criei um JPBINARY, com a mesma estrutura.
Na atualização, a base local é atualizada pela base da internet, baseada na data.

Pronto, com isso tenho uma atualização automática de qualquer coisa.
Basta comparar cada data, e trazer o que for de data mais nova.
Com isso, os "resources" do aplicativo estão atualizados.

O que pode ser atualizado ?
Qualquer coisa: EXEs, DLLs, tabelas, ícones, tudo que precisar.
De repente, arquivos de relatório de algum gerador de relatório.
Ou arquivos HRB, ou módulos em EXE.

O troço ficou mais poderoso do que parecia.

Que tal o terminal puxar o EXE atualizado direto do MySQL?

Pois é... um troço tão simples, se tornou tão poderoso.
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

Resources em MySQL

Mensagempor Itamar M. Lins Jr. » 01 Ago 2021 21:06

Olá!
No LetoDbf eu fiz assim, mas está desligado.
Isso já tem mais de 6 anos.

Vou até rever isso, estava esquecido.
Tem msg aqui no forum.

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

Resources em MySQL

Mensagempor JoséQuintas » 02 Ago 2021 00:20

Itamar M. Lins Jr. escreveu:No LetoDbf eu fiz assim, mas está desligado.
Isso já tem mais de 6 anos.


Com certeza não foi assim.
É tudo pelo MySQL.

No DBF... não sei se conseguiria salvar de forma segura, devido à limitação do DBF.
Em pasta compartilhada.... isso dependeria de um servidor especial, e não um servidor comum da internet.
Ficar criando estrutura especial, ou alugando servidores na internet.... isso não é comigo.
Nem mesmo colocar meu próprio servidor, pra não depender de internet comum.
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

Resources em MySQL

Mensagempor Itamar M. Lins Jr. » 02 Ago 2021 00:33

Olá!
Ainda não entendeu o que é o LetoDbf.
Quem disse que precisa de DBF ?
leto_fCopyFromSrv(...)
leto_fCopyToSrv(...)
Sem falar em UDF´s
Posso copiar do servidor para ...
Posso copiar de qualquer lugar para o servidor...

Nem usa-se pasta compartilhada. Se vc tem um servidor MySQL em qualquer lugar posso ter o mesmo servidor LetoDbf que é o mesmo servidor só que posso usar toda a sintaxe do Harbour.

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

Resources em MySQL

Mensagempor JoséQuintas » 02 Ago 2021 00:40

Itamar M. Lins Jr. escreveu:Nem usa-se pasta compartilhada. Se vc tem um servidor MySQL em qualquer lugar posso ter o mesmo servidor LetoDbf que é o mesmo servidor só que posso usar toda a sintaxe do Harbour.


Sério ?
E onde vai ter o servidor LeToDbf ?
Cite hospedagem aonde tem isso.
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

Resources em MySQL

Mensagempor Itamar M. Lins Jr. » 02 Ago 2021 00:44

Olá!
E onde vai ter o servidor LeToDbf ?

Não sei.
Fiz isso para atualizar as estações.

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

Resources em MySQL

Mensagempor JoséQuintas » 02 Ago 2021 10:57

Itamar M. Lins Jr. escreveu:Não sei.
Fiz isso para atualizar as estações.


Ok, pra isso tem também o hbnetio, e o uso de NET:arquivo

COPYFILE NET:ORIGEM DESTINO

Aliás... parece que o uso de prefixo tem se expandido, como por exemplo COPYFILE ORIGEM ZIP:DESTINO
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

Resources em MySQL

Mensagempor JoséQuintas » 02 Ago 2021 11:03

Mas sem problemas, pense nisso também usando o hbmysql ou sqlmix.

USE ( "select * from jpbinary where name = 'programa.exe' )
hb_memowrit( "arquivo.exe", hb_base64decode( jpbinary->campo ) )
USE


Pode colocar em qualquer servidor da internet, pra ficar disponível pra tudo que é cliente.
Nada de configurar servidor FTP ou HTTP exclusivo pra isso.
Tudo simples como consultar um campo no MySQL.
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

Resources em MySQL

Mensagempor Itamar M. Lins Jr. » 02 Ago 2021 11:08

Olá!
Pois é ! Isso não é novo.
Mas é bom deixar aqui essa forma também. Quanto mais opções melhor. Importante é entender o processo. Seja com Mysql, LetoDbf, hbNETIO.

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

Resources em MySQL

Mensagempor JoséQuintas » 03 Ago 2021 12:58

Voltando a esse "esquema".

Gravando esses resources em formato json.... com data/hora....
Basta eu gravar um registro com tabela nova de CFOP, CST, etc. em formato json nessa "tabela"...
Está aí criada uma atualização automática de qualquer coisa.

Qualquer integração de outro aplicativo poderia ser feita nesse esquema.
Até mesmo pela web.
Serve pra importar/exportar dados, bastando gravar em formato json.
Integrar matriz/filiais semi-online, etc.

Até mesmo a autorização de notas, caso não seja feita na mesma máquina, armazenar certificados PFX, etc.
É como um banco de dados com estrutura livre, permitindo ler/gravar qualquer coisa.
E nem precisa ser de/para Harbour, pode ser qualquer coisa.

Estou começando a ver muitas utilidades para isso.
Que tal relatórios que rodaram durante a noite? Imagens de gráficos? ou coisas que podem rodar em outra máquina/servidor, ao invés do servidor do cliente ?

Sei não, acho que abri uma porta repleta de possibilidades.....
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

Resources em MySQL

Mensagempor JoséQuintas » 03 Ago 2021 15:04

   MenuOption( "Gerente" )
      MenuDrop()
      MenuOption( "Viagens dos veículos",            "PNOTAVIAGEM" )
      MenuOption( "Produtos nos pedidos",            "PNOTACONSPROD" )
      MenuOption( "Visualizar Vendas",               "PNOTAVERVENDAS" )
      MenuOption( "Visualizar próximas vendas",      "PNOTAPROXIMAS" )
      MenuOption( "Recálculo de Estoque",            "PESTORECALCULO" )
      MenuOption( "Log de Utilização do Sistema",    "PADMINLOG" )
      MenuOption( "(I)Ocorrências Alterar/Excluir",  "ADMOCOALT" )
      MenuOption( "Usuários/Senhas/Acessos",         "PADMINACESSO" )
      MenuUnDrop()


Outro exemplo.

Meu menu é desse jeito.
Nada impede de salvar nesse MySQL em formato json.

E isso é só o começo..... nada impede de salvar um menu personalizado para cada usuário !!! (também formato json).

Como eu disse... as possibilidades se multiplicam.

E na prática, apesar de mencionar o formato json, não é limitado a hash array, mas a qualquer tipo de array.
Isso significa poder salvar todo tipo de menu interno do aplicativo, relatórios, etc.

Virou 1001 utilidades mesmo, podendo reduzir em muito o tamanho do EXE.

É questão de analisar as possibilidades, e se é viável ou não - tem essa também, tem que tomar cuidado pra não exagerar.
Por exemplo, a própria criação dessa tabela de resources NÃO pode depender de resource.
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

Resources em MySQL

Mensagempor JoséQuintas » 03 Ago 2021 21:24

Outra utilidade: comandos SQL de atualização

WITH OBJECT cnSQL
   :cSQL := "SELECT * FROM JPBINARY WHERE BINTYPE = 'update' AND BINDATE > '2021-08-01' ORDER BY BINDATE, IDBINARY"
   :Execute()
   DO WHILE ! :Eof()
      :ExecuteCmd( :String( "BINVALUE" ) )
      :MoveNext()
   ENDDO
   :CloseRecordset()
ENDWITYH


Executar os comandos a partir de determinada data.
Isso permite deixar atualizações pra atualizar automaticamente, sem fazer o aplicativo crescer.
Até mesmo pra criação inicial da maioria das tabelas.... por exemplo

Esse barato tá muito doido.
Tá correndo o risco de exagerar no uso.... kkkkk

Por exemplo, agora, que decidi alterar TODOS os campos numéricos de DOUBLE pra DECIMAL.
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

Resources em MySQL

Mensagempor JoséQuintas » 03 Ago 2021 21:35

   *--- Nao existe mais
   SayScroll( "SQL Verificando desativados" )
   WITH OBJECT cnSQL
      IF AppVersaoSQLAnt() < 20200302
         IF :TableExists( "JPAGENDA" )
            IF :FieldExists( "CDID", "JPAGENDA" )
               :ExecuteCmd( "DROP TABLE IF EXISTS JPAGENDA" )
            ENDIF
         ENDIF
      ENDIF
      IF AppVersaoSQLAnt() < 20200822
         :ExecuteCmd( "DROP TABLE IF EXISTS JPPRETAB" )
         :ExecuteCmd( "DROP TABLE IF EXISTS JPPROMIX" )
      ENDIF
      IF AppVersaoSQLAnt() < 20200905
         :ExecuteCmd( "DROP TABLE IF EXISTS JPANPATI" )
         :ExecuteCmd( "DROP TABLE IF EXISTS JPLEIANPATI" )
         :ExecuteCmd( "DROP TABLE IF EXISTS JPAUXANPATI" )
         :ExecuteCmd( "DROP TABLE IF EXISTS JPTABANPATI" )
      ENDIF
      IF AppVersaoSQLAnt() < 20200727.2
         :ExecuteCmd( "DROP TABLE IF EXISTS JPFISCAL" )
      ENDIF
   ENDWITH


Por exemplo, substituir tudo isso do meu fonte.
Pode ser interessante criar as STORED FUNCTIONS pra testar se existe tabela e campo, mas a criação também pode fazer parte dos comandos executados automaticamente....

Então.... primeiro é atualizar todo mundo pra uma versão que atualiza automático baseada nisso, e depois... colocar isso na atualização automática...

Precisa executar algum comando nos clientes? só cadastrar nesse arquivo.

Estou começando a considerar isso como minha invenção do século, tá ficando muito poderosa.

Fica como se fossem STORED PROCEDUREs particulares, a serem executadas conforme versão do aplicativo vai aumentando.
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

Resources em MySQL

Mensagempor JoséQuintas » 04 Ago 2021 20:11

Aconteceu o que eu menos esperava....

Aonde o MySQL está em servidor Linux DEU ERRO !!!!

Parece que 4MB foi demais para o LINUX !!!!

kkkkkkkk

Até confundi com 32/64 bits, mas 4MB não são 4GB....
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

Resources em MySQL

Mensagempor JoséQuintas » 05 Ago 2021 11:19

JoséQuintas escreveu:Aonde o MySQL está em servidor Linux DEU ERRO !!!!


Uma grande correção:

Não tem a ver com Linux, mas sim com MySQL.
Também não é defeito, apenas o default de instalação do MySQL é bem mais baixo do que do MariaDB.
Dá pra dizer que, obrigatoriamente, a instalação de MySQL SEMPRE precisa ajuste manual.
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

Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

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