Clipper On Line • Ver Tópico - Vantagem(*) do DBF

Vantagem(*) do DBF

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

Moderador: Moderadores

 

Vantagem(*) do DBF

Mensagempor JoséQuintas » 24 Abr 2020 11:52

/*
PTESVOLFIN - VOLTA FINANCEIRO ZERADO

Cliente usa lançamentos zerados em determinada situação
Apagar gerou problema
*/

PROCEDURE PTESVOLFIN

   LOCAL nCont, cnSQL := ADOClass():New( AppConexao() )

   SayScroll( "2020/04/24 - Financeiro faltando" )
   IF ! AbreArquivos( "jpfinan" )
      RETURN
   ENDIF
   SET ORDER TO 0
   GOTO TOP
   GrafTempo( "Financeiro" )
   DO WHILE ! Eof()
      GrafTempo( RecNo(), LastRec() )
      Inkey()
      WITH OBJECT cnSQL
         :cSQL := "SELECT COUNT(*) AS QTD FROM JPFINAN WHERE IDFINAN = " + NumberSQL( jpfinan->idFinan )
         :Execute()
         IF :Number( "QTD" ) == 0
            :QueryCreate()
            FOR nCont = 1 TO FCount()
               :QueryAdd( FieldName( nCont ), FieldGet( nCont ) )
            NEXT
            :QueryExecuteInsert( "JPFINAN" )
         ENDIF
         :CloseRecordset()
      ENDWITH
      SKIP
   ENDDO
   CLOSE DATABASES
   MsgExclamation( "Fim" )

   RETURN


Até mostrei por aqui um problema com DBF estragado, que foi convertido pra MySQL.
A solução, pra que não impedisse mexer na estrutura foi apagar zerados.
Até aí ok.
Mas.... um cliente usava lançamentos zerados.... resultado: apagou dados úteis em outro cliente
Como apaguei só no MySQL, tudo bem, pegar de volta do DBF.

Mas isso me fez pensar: e quando não tiver mais DBF?
Aquilo de registro só ser apagado no PACK em DBFs, pode fazer falta, em determinadas situações....

Será uma doideira, mas pode ser interessante guardar tudo que for excluído/alterado
Com certeza STORED PROCEDURE facilita isso.

Com certeza se torna um ótimo log de tudo que foi alterado/excluído.
Dá pra criar uma opção do usuário desfazer algo que tenha feito errado....
Mas.... será exagero? haja espaço....

Fico pensando....
Isso é só porque estava acostumado a ter isso no DBF, ou realmente é necessário?
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Vantagem(*) do DBF

Mensagempor asimoes » 24 Abr 2020 12:36

Ai entra o backup do banco, recuperar o backup do dia anterior.
â–º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

Vantagem(*) do DBF

Mensagempor LDOSISTEMAS » 14 Mai 2020 21:28

Eu também já pensei nisso, ai grande questão, eu cheguei a criar um flag nos registros para marcar ao deletar e rotina para excluir como no DBF mas depois vi que era tudo uma questão de aprendizado do usuário.
E mesmo de nós, então acabei removendo as rotinas, instrução de BKP com mais frequência e vamos tocando a vida.
LAURO DE OLIVEIRA
Analista/Diretor
(37) 3381 32 11
www.ldosistemas.com.br
Imagem
LDOSISTEMAS
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 45
Data de registro: 01 Set 2014 17:04
Cidade/Estado: CLAUDIO/MG
Curtiu: 1 vez
Mens.Curtidas: 2 vezes

Vantagem(*) do DBF

Mensagempor modalsist » 15 Mai 2020 20:57

Boa noite.

Eu preciso dos registros deletados. Frequentemente me pedem, no mesmo dia e antes de fazer backup, para recuperar um pedido, um cliente, etc, que foi excluído indevidamente.
Criei uma tabela chamada "bd_deleted" com os campos: tabela, campo, tipo, valor, etc, onde armazeno cada campo, tipo e valor do registro a ser deletado, antes de ser excluído da tabela original, de modo que posso recuperar este registro "deletado" de volta à tabela original.
Ainda não descobri uma forma mais prática de fazer isto no sql.

Att,
Eduardo Fernandes
modalsist
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 3
Data de registro: 14 Mar 2020 09:13
Cidade/Estado: São Paulo/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Vantagem(*) do DBF

Mensagempor Vlademiro » 15 Mai 2020 21:19

No sql o método mais usado é através de triggers. Mas vc pode implementar isso no seu sistema, caso seu bd não tenha triggers.

https://www.google.com/search?q=trigger+auditoria&oq=triggers+auditoria
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 749
Data de registro: 11 Jul 2005 02:46
Curtiu: 22 vezes
Mens.Curtidas: 62 vezes

Vantagem(*) do DBF

Mensagempor Kiko Fernandes » 24 Mai 2020 02:11

Bom dia pessoal.
Eu trabalho com SQL desde 2006, ano em que fui largando o DBF. Porém esta necessidade me perturbou no início e por ficar encucado desde esta época passei a adotar em todas as tabelas criadas um campo isdeleted que grava valor 1 para os que foram deletados. Então sempre tenho um where isdeleted!=0 como filtro em todas as consultas.
Acabo deixando a opção de excluir (delete) quando necessito fazer uma manutenção no banco de dados.
Não vou dizer que seja a melhor solução mas desde então tenho usado desta forma e tem satisfeito as necessidades em relação a situação ocorrida.
Kiko Fernandes
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 213
Data de registro: 24 Out 2008 21:41
Cidade/Estado: Foz do Iguaçu
Curtiu: 4 vezes
Mens.Curtidas: 9 vezes

Vantagem(*) do DBF

Mensagempor JoséQuintas » 24 Mai 2020 10:26

modalsist escreveu: para recuperar um pedido, um cliente, etc, que foi excluído indevidamente.


De um modo geral é tentar impedir exclusão indevida.
NÃO permito excluir cliente em uso, produto em uso, pedido faturado, pedido confirmado, etc.
No caso de clientes e produtos tenho a opção de desativar, afinal, relatórios anteriores ainda precisam da informação, mesmo que daqui pra frente não usem mais.

É raro precisar de informação excluída, mas já aconteceu.
Se for de dia anterior, o backup ajuda, mas se for do mesmo dia... aí sem opção - no MySQL.

Ao cancelar uma nota, o pedido volta pra situação não confirmado.
Isso permitiria reemitir a nota sem precisar digitar tudo de novo.
Mas certas opções deixo só pro administrador, como por exemplo reutilizar o número de uma nota cancelada.

Aliás... isso depende de cada cliente.
Tem cliente onde quem cancela não é o mesmo usuário que emite.
Tem cliente onde não é qualquer pessoa que pode fazer cadastro.
Tem cliente onde só pode vender pra determinado cliente se houver uma tabela de preços para aquele cliente.
Mas tem exceção onde no cliente não tem controle, mas nesse caso, a própria bagunça não permite conferência, e retornar coisas excluídas poderia ser só mais uma coisa pra não ter controle - por exemplo trazer de volta coisa errada kkkk
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Vantagem(*) do DBF

Mensagempor lwinter » 06 Jun 2020 21:04

Precisamos nos acostumar trabalhar com banco de dados relacional.
Existem muitas boas praticas que nao usamos em DBF. Eu fazia uso dessas boas praticas na minha empresa mas eu nao botava a mao na massa.
Estou reaprendendo tudo de novo junto com muitos deste forum.
Entre essas boas praticas estao, usar exclusao logica (ativo/inativo) sempre que possivel.
Fazer backup atraves de Sotored Procedures e triggers dos registros deletados em outro banco de dados.
Fazer insert de movimentos em Dateware house ou data lake.

Bom, espaco? Precisamos tirar dessa nossa cabeca a questao de espaco em disco e espaco em memoria. Este paradigma foi impregnado em nos devido ao tempo que estamos no mercado e foi uma heranca do clipper e DBF, querendo ou nao.
Precisamos pensar bola para frente e ficar mais proximos do mercado. Senao nunca teremos clientes novos (novos na sua empresa e de idade...rsrsrs...).
Brincadeiras a parte voces tem a faca e o queijo na mao. Basta ter forca de vontade e reaprender fazendo novos cursos e refaturando ou ate mesmo refazendo do zero seus codigos. Sempre tem uma estrategia que fara mais sentido e trara menos esforco.
lwinter
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 123
Data de registro: 07 Mar 2011 12:08
Cidade/Estado: Campinas - SP
Curtiu: 1 vez
Mens.Curtidas: 12 vezes

Vantagem(*) do DBF

Mensagempor lwinter » 06 Jun 2020 21:07

A vida nao é facil.
Programar nao é para qualquer um!
Voce ja sao programadores, tem de ter orgulho do que voces fazem!
Nao desista de querer inovar e se reinventar. Tenho certeza que todos podem e devem!
lwinter
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 123
Data de registro: 07 Mar 2011 12:08
Cidade/Estado: Campinas - SP
Curtiu: 1 vez
Mens.Curtidas: 12 vezes




Retornar para Banco de Dados

Quem está online

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