GERANDO TROCO ERRADO NO PDV

USUARIO.EXCLUIDOS 09/06/2007 11:25:51
#220478
Olá galera.
Aconteceu uma coisa sinistra hoje.
O usuário passou um pedido de 1,99.
O cliente pagou 5,00 e simplesmente gerou um troco de 7,00.
Pedi para ele reiniciar o micro e entrar novamente no sistema.
Ae, voltou ao normal..
Alguem passou por isso alguma vez ? O q poderia ser ?
Obrigado ..
USUARIO.EXCLUIDOS 09/06/2007 15:25:58
#220488
Resposta escolhida
Verifica as variáveis utilizadas no processo, provavelmente em algum momento alguma variável que deveria ser limpa não foi e gerou este erro.

Digo desde já que este é um dos erros mais dificeis de serem detectados !!!
Mas foi um erro gerado por vpcê e não seria um erro nem do VB, do Access é da lógica de programação.

Tenta pegar o máximo de detalhes das operações do user para ver se xonsegue simular o erro depurando.

Resumindo, variável que deveria ser limpa (ou atribuido um valor) e que não foi em algum momento no programa.
USUARIO.EXCLUIDOS 09/06/2007 15:33:57
#220490
Caro Emerson..

O erro foi gerado em três pedidos. O micro foi reiniciado e resolvido o problema. Isso antes de ser gravado o pedido no banco de dados.
Estive conversando com um amigo, ele me informou que a maioria de BugÂÂ's gerado pode ser a má alimentação de energia na placa-mãe ou componentes.
Isso aconteceu com ele. Não esse erro em específico. Outra falha.

Quanto ao ACCESS, tenho um amigo programador que desenvolveu um sistema que em determinado clientes há bancos com mais de 2 milhões de registros.
Pergunto. Até que ponto o ACCESS é seguro em ambiente Client x Server.

Abs..

USUARIO.EXCLUIDOS 09/06/2007 22:18:21
#220513
Na minha mente o que acontece é que se estiver trabalhando em ambiente multi-user e estiver utilizando-se de componentes pode ser que vc esteja tendo um problema de sobreposição de processamento.
No meio de um processo outro user altera o valor da mesma variável e então atrapalha toda a conta, mas se for um executavel na rede sem dll nenhuma isto não seria nosso problema uma vez que as variáveis estariam sendo criadas na memória de cada estação.
Outra possibilidade é se no nosso processo gravássemos valores num banco de dados ou arquivo e então ao término calculássemos o troco pelos registros armazenados, se por acaso outro user alterasse os registros no meio do processo, por conta do ambiente multi-user teríamos problemas.
Todas estas possibilidades só seriam percebidas por vc em ambiente de produção pois implica em vários micros trabalhando em rede e jamais ocorreriam no desenvolvimento.
Vamos esgotar nossas possibilidades como programadores para começar a colocar culpa coisas do além, não faço idéia de que tipo de erros sejam estes de hardware e se forem ... vamos ter que acabar contornando pelo VB mesmo.
Quanto a segurança do access ... Nenhum ponto, access não é seguro, ágil e nem é prático para reaproveitamento de código de forma alguma quando estamos em ambiente client-server/Multi-user; Só que se for um dos erros que eu imaginei acima não seria o BD que iria corrigir.

Leia alguns detalhes mostrados por mim quanto ao funcionamento do Access em rede neste tópico e tire suas conclusões :
http://www.vbmania.com.br/vbmania/vbmforum.php?varMethod=Abrir&varID=215641

Leia um documento da própria MS que explica que existe diferenças gritantes entre as 2 tecnologias:
http://www.microsoft.com/brasil/msdn/Tecnologias/sql/AccessToSQLServer.mspx#EG2AE
LCSD 09/06/2007 22:43:28
#220516
IDELVAM, FAÇA O TESTE Q TE FALEI DA FONTE DE ALIMENTAÇÃO.

USUARIO.EXCLUIDOS 10/06/2007 11:07:25
#220538
Galera.. Obrigado...

Fox... vou fazer esse procedimento.

Engraçado de tudo, que o problema é intermitente. Isso aconteceu há 3 meses atras.

O codigo do PDV refiz tudo... Agora está enxuto.


USUARIO.EXCLUIDOS 10/06/2007 14:48:09
#220559
Caro Emerson.
Falando de gravação de processos, todos os pedidos ANTES de serem gravados no bco de dados, são gerandos tipo de um "LOG" em cada estação. Cada estação tem uma pasta chamada Pedidos onde ficam gravados os mesmos.

Puxei os logÂÂ's e constatei a falha no troco.

Por isso que eu falo. Isso é sinistro.


USUARIO.EXCLUIDOS 10/06/2007 15:54:11
#220563
1 - Ocorreram 3x o erro no mesmo micro?, caso positivo realmente falha de hardware/rede seria um ponto a se pensar mas nunca algo definitivo.
2 - Os erros foram gerados pelo mesmo usuário? Caso positivo talvez ele tenha descoberto involuntariamente um furo de analise da sua parte (usuários são bons nisto!)
3 - Pelo que entendi não é utilizado nenhum componente compartilhado no processamento do troco e toda informação só é gravada após o seu cálculo ser efetuado ... mas existe uns lances de substituir vírgula por ponto para que o VB faça calculos corretamente em algumas situações, verificou isto ?
4 - Está utilizando as variáveis do tamanho correto ?, pois se estiver mandando um double para uma variável menor ela vai arredondar nosso cálculo de forma indevida, aliás sobre arredondamento como vc está tratando descontos que poderiam eventualmente gerar valores com mais casas decimais do que previsto pelo sistema ?
5 - Vc não está tabalhando com string para fazer cálculos em nenhum momento, está ?
FLAVIOALBIERO 10/06/2007 18:35:11
#220574
Olá, IDELVAN
sou eu caro amigo

já passei por situação parecida e concordo com o Ermerson Tadeu, verifique seu codigo pois provavelmente o problema esta no código fonte

porém se o problema for sempre na mesma maq. ai o Foxman falou.

quanto ao banco de dados access, bom eu não utilizo em nenhuma das minhas aplicações sou fã incondicional do ORACLE, não troco por nada, porém tudo depende da sua aplicação as minhas frente de caixa por exemplo são escritas em VB e utilizam arquivos tipo texto, dá trabalho porém ficam rapidas e seguras contra quedas de energia e outros elementos

bom se precisar de ajuda estou por aqui

abçs
t+

USUARIO.EXCLUIDOS 11/06/2007 09:32:59
#220616
Caro Emerson.
Irei verificar todas os pontos que vc informou...

Caro Flávio.
Meu... vc anda sumido heimmm..... aparece no MSN.
Vou analisar a sua colocação tmb...

Vou postar aqui os resultados.

Obrigado a todos vocês...


USUARIO.EXCLUIDOS 11/06/2007 11:07:47
#220642
Idelvan

Isso aconteceu num mesmo produto, ou por causa de um mesmo valor (1,99)?

Ou isso ocorreu em qualquer produto ou em qualquer valor?
Página 1 de 3 [29 registro(s)]
Tópico encerrado , respostas não são mais permitidas