Autor Tópico: Manutenção do banco HyperFile Client/Server  (Lida 12658 vezes)

PauloViana

  • Full Member
  • ***
  • Mensagens: 104
  • Karma: +0/-0
Re:Manutenção do banco HyperFile Client/Server
« Responder #15 Online: Dezembro 12, 2013, 04:26:12 pm »
Trabalho basicamente com o webdev, e como são vários BD em servidores diferentes eu realizado a atualização das tabelas
passando parametro para a aplicação e ai abro um formulario no qual realizo a execução de scripts,
foi a maneira mais fácil que encontrei, pois trabalho com mais de 50 clientes diferentes
segue em anexo o modelo

att

Paulo Viana

JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:Manutenção do banco HyperFile Client/Server
« Responder #16 Online: Dezembro 12, 2013, 04:35:58 pm »
Interessante... tenho que pensar em construir algo similar.

Arlindo Reis

  • Sr. Member
  • ****
  • Mensagens: 291
  • Karma: +0/-0
Re:Manutenção do banco HyperFile Client/Server
« Responder #17 Online: Dezembro 13, 2013, 10:31:13 am »
Trabalho basicamente com o webdev, e como são vários BD em servidores diferentes eu realizado a atualização das tabelas
passando parametro para a aplicação e ai abro um formulario no qual realizo a execução de scripts,
foi a maneira mais fácil que encontrei, pois trabalho com mais de 50 clientes diferentes
segue em anexo o modelo

att

Paulo Viana

Muito show

PauloViana

  • Full Member
  • ***
  • Mensagens: 104
  • Karma: +0/-0
Re:Manutenção do banco HyperFile Client/Server
« Responder #18 Online: Dezembro 14, 2013, 11:58:46 pm »
Jacques,

dando uma olhada mais profunda no hyperfile tem uma opção que faz a sincronização automatica das tabelas

HModifyStructure("*")

ele atualiza as tabelas conforme a analise, funciona apenas para hyperfile,

aproveitando a oportunidade vc já trabalhou com transação ou lock de registros com o windev/webdev?

att

Paulo Viana




JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:Manutenção do banco HyperFile Client/Server
« Responder #19 Online: Dezembro 15, 2013, 09:39:57 am »
Bom dia.
Eu havia lido sobre esta função. Estou avaliando o funcionamento.
Da mesma forma há este recurso: WDModfic (http://doc.pcsoft.fr/en-US/?3044270&name=wdmodfic_tool_for_automatic_modification_the_data_files&q=wdmodfic)

Quanto a sua pergunta: Eu já usei transações, porém nunca usei LOCK.

Grato pela resposta.

PauloViana

  • Full Member
  • ***
  • Mensagens: 104
  • Karma: +0/-0
Re:Manutenção do banco HyperFile Client/Server
« Responder #20 Online: Dezembro 15, 2013, 06:35:41 pm »
Fazendo uma analise mais profunda do hyperfile, acredito que seja a melhor opção para quem trabalha com windev
alguns pontos:

1)as atualizações de tabelas são automáticas, quando da alteração de estrutura
2)performance bem superior a outros bancos de dados(dentro do windev não realizei testes com outras ferramentas), mas como exemplo a mesma tabela salvando 100000 em hyperfile leva 10% do tempo quando utilizado o postgresql
3)gerenciador de backup´s embutido na ferramenta
4)lock de registro - funciona 100% apenas com o hyperfile
5)controle de transações, funciona com outros bancos, só que o hyperfile permite um melhor gerenciamento dentro do windev

a minha unica dúvida para esta mudança se refere a segurança e integridade dos dados,
existe algum usuário no forum que tenha uma base de dados significativa rodando em produção que poderia detalhar melhor o funcionamento

att

Paulo Viana

JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:Manutenção do banco HyperFile Client/Server
« Responder #21 Online: Dezembro 16, 2013, 07:45:02 am »
Bom dia.
Nos tempos do antigamente, o padrão conhecido em pequenas aplicações era o famoso "DBF". O Clarion trouxe o formato "TPS", um desconhecido. O cliente não conhecia. Isto engessava e isolava de certa forma a solução num formato proprietário, porem, passava despercebido. Hoje, passados praticamente 13 anos os clientes são outros, mais esclarecidos, muitos até sabem o que querem. Dentro deste contexto, enfrentamos uma resistencia ao oferecer um sistema que armazena os dados em HYPERFILE.

O cliente pergunta: HYPE-o-quê? Tem conexão web? Permite abrir via Excel? Permite isto? ou aquilo?

Novamente estamos no dilema ao apresentar um ilustre desconhecido. O cliente nunca ouviu falar e o desenvolvedor não tem muito conhecimento de causa para reforçar as suas convicções (falo por mim). Entretanto, se você oferecer um sistema que utiliza o banco MSSQL ou mesmo outros bancos.... mesmo não sendo uma "Brastemp", pelo menos é algo conhecido. Há um conceito de mercado que avalisa a decisão. Isto facilita muito as coisas.

eduardowolak

  • Full Member
  • ***
  • Mensagens: 146
  • Karma: +0/-0
Re:Manutenção do banco HyperFile Client/Server
« Responder #22 Online: Dezembro 16, 2013, 10:48:08 am »
Até acredito que o Hyper seja rápido, mas hoje em dia integridade é essencial e primordial em qualquer banco de dados, e o seu cliente tem total razão em questionar isso, hoje temos ai banco de dados gratuitos com ótima performance, eu não iria de Hyper, até pq o mercado já conhece Oracle e até mesmo o Postgresql que é 100% gratuito, cara, você me fez lembrar aqui do TPS, nossa, foi justamente por causa desse ISAM maldito que fui para o mundo SQL!

JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:Manutenção do banco HyperFile Client/Server
« Responder #23 Online: Dezembro 16, 2013, 10:58:23 am »
Indo um pouco mais longe e para apimentar um pouco esta abordagem, ainda me deparo com outra situação. Até 1999 usavamos Clipper/DPF. De 2000 a 2004 Clarion/TPS, de 2004/Hoje usamos Clarion/Firebird migrando para WD/MSSQL. Neste cenarário me deparei com um dilema: Aderir a um projeto (open source) ou adotar um produto. Foi esta discussão que nos levou a adotar o MSSQL (acesso nativo) nos novos projetos em WD. Para nós o Firebird atendeu e atende até o momento, porem, trata-se de um projeto sendo que pertence a todos, porém, não é de ninguém. Para solidificar um pouco a coisa adotamos o MSSQL, pelo menos tem dono, tem endereço e sabemos a quem recorrer caso necessário. Nem querer entrar na discussão de quem é quem ou quem é bom e quem não é.... isto é apenas uma opção mais comercial do que técnica.

eduardowolak

  • Full Member
  • ***
  • Mensagens: 146
  • Karma: +0/-0
Re:Manutenção do banco HyperFile Client/Server
« Responder #24 Online: Dezembro 16, 2013, 11:03:38 am »
Certo, concordo com seus argumentos, também não quero dizer que o banco X ou o banco Y é o melhor, não é isso, mas já sabemos que esses bancos de dados que comentamos já estão a anos no mercado e funcionando bem, e o melhor deles é aquele que vc conhece bem, e essas empresas ou os grupos de usuários que desenvolvem fazem unicamente isso, são especializados nisso.

JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:Manutenção do banco HyperFile Client/Server
« Responder #25 Online: Dezembro 16, 2013, 11:14:54 am »
Exatamente.
Assim como o caminho mais curto é aquele que eu conheço, o melhor profissional é aquele que sabe usar bem a ferramenta. Quem domina bem um banco "X" tende a executar um trabalho de qualidade superior àquele que, mesmo tendo um banco melhor por excelencia, não tem tal domínio.

PauloViana

  • Full Member
  • ***
  • Mensagens: 104
  • Karma: +0/-0
Re:Manutenção do banco HyperFile Client/Server
« Responder #26 Online: Dezembro 16, 2013, 12:27:59 pm »
A vc´s que utilizam outros bancos,

utilizo o postgresql a bastante tempo, possui recursos de lock, mas para isto eu teria que utilizar linguagem sql e pelo que testei não funciona com acesso nativo,
como vc´s fariam nesta situação

como vc tratam o lock de registros utilizando acesso nativo?

se não controla lock de registro como vc fazem para tratar uma situação onde 2 ou mais usuarios acessam o mesmo registro simultaneamente e realizam alterações?

o meu grande problema esta sendo este em relação ao acesso nativo, a performance fica em 2o plano

att

Paulo Viana








eduardowolak

  • Full Member
  • ***
  • Mensagens: 146
  • Karma: +0/-0
Re:Manutenção do banco HyperFile Client/Server
« Responder #27 Online: Dezembro 16, 2013, 12:44:19 pm »
Olá Paulo, bom, qualquer comando DDL já executa implicitamente um comando "LOCK" para controle de integridade, quando você necessitar de um bloco de comandos DDL vc vai utilizar o BEGIN e o COMMIT, ou seja, ou faz tudo ou não faz nada, isso é para qualquer banco, vc também pode utilizar PL/pgSQL caso necessário, para controlar o acesso ao registro de apenas um usuário por vez eu utilizo uma flag, se o usuário clicar em modificar por exemplo ele faz um UPDATE no registro avisando ao banco que o registro está sendo bloqueado pelo usuário XYZ, no momento em que o registro for atualizado ou cancelado o UPDATE zera a flag para outros usuários terem acesso a esse registro.
Eu já vi ERPs que bloqueiam o registro com LOCK, veja bem, isso num sistema compartilhado com muitos usuários é DEAD LOCK na certa, qualquer SELECT fica aguardando a liberação do registro por LOCK.

Wolak.

PauloViana

  • Full Member
  • ***
  • Mensagens: 104
  • Karma: +0/-0
Re:Manutenção do banco HyperFile Client/Server
« Responder #28 Online: Dezembro 16, 2013, 03:32:46 pm »
Eduardo, entendi o procedimento que vc sugeriu,
o que ocorre se este flag estiver ativo na tabela e de repente o computador desliga ou algo parecido?
estou te fazendo esta pergunta pois trabalho com webdev, e ai entra o problema, se o usuário fechar o browser eu fico com o flag pendurado, impossibilitando que outros usuários tenham acesso a este registro.
O lock do BD seria mais amigável por este aspecto, inclusive já faço assim utilizando em cobol, infelizmente vou ter que criar chamadas em sql para realizar este procedimento

att

Paulo Viana

eduardowolak

  • Full Member
  • ***
  • Mensagens: 146
  • Karma: +0/-0
Re:Manutenção do banco HyperFile Client/Server
« Responder #29 Online: Dezembro 16, 2013, 03:43:57 pm »
Então Paulo, o Administrador ou o próprio usuário desbloqueiam o registro, talvez não seja a melhor solução, mas não encontrei nada melhor até aqui, e isso na verdade nunca foi problema, também trabalho via WEB, na verdade mais web do que desktop e funciona bem esse processo, o usuário visualiza isso no "Browse", como um semáforo, quanto ao LOCK, eu conheço dois ERPs renomeados do mercado que fazem isso, e meu amigo, é uma dor de cabeça só, no momento que alguém dispara algum relatório e esse registro que estiver bloqueado via LOCK fica aguardando o Confirmar por muito tempo vira um caos só, todas as querys ficam aguardando o registro ser desbloqueado, e o DEAD LOCK aparece, por mais que vc aumente o timeout o sistema fica pendurando aguardando o desbloqueio, claro, estou falando de sistemas OLTP, que deve ser o seu caso.