FAZER CALCULO MATEMÁTICO NO BANCO DE DADOS

 Tópico anterior Próximo tópico Novo tópico

FAZER CALCULO MATEMÁTICO NO BANCO DE DADOS

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#484558 - 20/09/2018 12:13:27

LUIZCMF9
BOA VISTA
Cadast. em:Setembro/2018


Bom dia amigos sou iniciante em programação e estou fazendo um controle de estoque a nível de aprendizado onde o mesmo ja esta quase todo pronto faltando apenas fazer os cálculos matemáticos de Entrada de material, saída de material e Saldo em estoque. Bem a minha duvida é a seguinte: Qual a melhor opção? Fazer direto no meu banco de dados que é ACSSES ou na própria aplicação.
Valeu pessoal.

Luis Carlos

Luis Carlos

#484559 - 20/09/2018 13:31:04

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


Bom, para iniciar, Access não é banco de dados, está mais para um organizador de dados.
Para uma boa aplicação, é necessário concentrar o processamento no banco de dados, então partindo deste princípio, você deve deixar que o banco de dados trabalhe por você.
Você deve fazer isto a partir de procedures e triggers.




#484560 - 20/09/2018 13:31:10

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Tu faz no programa.
Access, desde quando ele é Banco.
Tem opções melhores,como Sqlserver,Mysql,Firebird,Oracle,Db2 e outros.



#484562 - 20/09/2018 14:10:12

LUIZCMF9
BOA VISTA
Cadast. em:Setembro/2018


Citação:
:
Bom, para iniciar, Access não é banco de dados, está mais para um organizador de dados.
Para uma boa aplicação, é necessário concentrar o processamento no banco de dados, então partindo deste princípio, você deve deixar que o banco de dados trabalhe por você.
Você deve fazer isto a partir de procedures e triggers.

Obrigado! Como estou iniciando é normal eu falar coisas erradas...tipo achar que Acsses seri banco de dados...obrigado por ajudar e pelo aprendizado!

Luis Carlos

#484564 - 20/09/2018 14:36:03

LUIZCMF9
BOA VISTA
Cadast. em:Setembro/2018


Citação:
:
Tu faz no programa.
Access, desde quando ele é Banco.
Tem opções melhores,como Sqlserver,Mysql,Firebird,Oracle,Db2 e outros.

Obrigado pelo ensinamento! não sabia que acsses não era banco de dados.



Luis Carlos

#484565 - 20/09/2018 14:41:53

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


Luiz, procure as opções citadas pelo OMAR, e de preferencia sempre para as melhores opções, independente do tamanho da sua aplicação.
SQL Server, Oracle, Mysql, Firebird, Postgresql, etc...

Pensando em .Net, SQL Server é a melhor opção, aliado ao Entity Framework.




Resposta escolhida #484570 - 21/09/2018 00:42:34

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Quanto ao banco de dados concordo totalmente. Access pode até funcionar e se comportar como um banco de dados, mas não é.

Quanto à estoque, vamos ao raciocínio: Um estoque nada mais é que um setor que movimenta mercadorias, sem necessariamente lidar com a venda, simplesmente controla quantidades, setorização, datas de vencimento(para perecíveis por exemplo) e qualquer outro aspecto que diga respeito ao produto em si. Saldo, não é algo "cadastrável", ele é o resultado da soma de entradas, subtraído da soma das saídas e possivelmente todas as mazelas de provisionamento que você possa possuir no seu regime de estoque. Portanto ter um campo onde diga o valor da quantidade atual de um produto, é um erro de design que pode ser um problema gigantesco em aplicações de maior porte. Em suma, você precisa de uma tabela bem simples de movimentação, mais ou menos assim:
Código do produto - Quantidade - Tipo de Movimentação
1                            - 14                - Entrada
1                            - 9                  - Saída

Vemos claramente aqui o que acontece, temos dois registros de movimentação de produto, 14 entradas e 9 saídas, a query para trazer o saldo atual do produto seria:

SELECT Entradas - Saídas FROM
(SELECT Codigo, Quantidade FROM MOVIMENTACOES WHERE Tipo = 'Entrada'
UNION
SELECT Codigo, Quantidade FROM MOVIMENTACOES WHERE Tipo = 'Saida')


Obviamente não é uma query real mas já passa a idéia básica de como isso deve ser feito. Ela pode ficar bastante complexa para estoque que trabalhe com regimes FIFO, LIFO, JIC, IAS2 ou híbridos destes.

Em resumo, manter um "saldo atual" é receita de desastre e consequentemente, perda de dinheiro, mercadorias e clientes, e, dependendo do caso, até mesmo xadrez. Imagine o seu sistema de estoque falhando para um estoque de remédios por exemplo, ou gerenciando um estoque de resíduos tóxicos...

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#484667 - 27/09/2018 10:25:42

LUIZCMF9
BOA VISTA
Cadast. em:Setembro/2018


Citação:
:
Quanto ao banco de dados concordo totalmente. Access pode até funcionar e se comportar como um banco de dados, mas não é.

Quanto à estoque, vamos ao raciocínio: Um estoque nada mais é que um setor que movimenta mercadorias, sem necessariamente lidar com a venda, simplesmente controla quantidades, setorização, datas de vencimento(para perecíveis por exemplo) e qualquer outro aspecto que diga respeito ao produto em si. Saldo, não é algo "cadastrável", ele é o resultado da soma de entradas, subtraído da soma das saídas e possivelmente todas as mazelas de provisionamento que você possa possuir no seu regime de estoque. Portanto ter um campo onde diga o valor da quantidade atual de um produto, é um erro de design que pode ser um problema gigantesco em aplicações de maior porte. Em suma, você precisa de uma tabela bem simples de movimentação, mais ou menos assim:
Código do produto - Quantidade - Tipo de Movimentação
1                            - 14                - Entrada
1                            - 9                  - Saída

Vemos claramente aqui o que acontece, temos dois registros de movimentação de produto, 14 entradas e 9 saídas, a query para trazer o saldo atual do produto seria:

SELECT Entradas - Saídas FROM
(SELECT Codigo, Quantidade FROM MOVIMENTACOES WHERE Tipo = 'Entrada'
UNION
SELECT Codigo, Quantidade FROM MOVIMENTACOES WHERE Tipo = 'Saida')


Obviamente não é uma query real mas já passa a idéia básica de como isso deve ser feito. Ela pode ficar bastante complexa para estoque que trabalhe com regimes FIFO, LIFO, JIC, IAS2 ou híbridos destes.

Em resumo, manter um "saldo atual" é receita de desastre e consequentemente, perda de dinheiro, mercadorias e clientes, e, dependendo do caso, até mesmo xadrez. Imagine o seu sistema de estoque falhando para um estoque de remédios por exemplo, ou gerenciando um estoque de resíduos tóxicos...



Estou há dias tentando fazer um calculo matemático no vb6 e não estou conseguindo alguém pode me ajudar.
Tenho duas tabelas  no Acsses que armazenam os dados de entrada (TB_Entrada) e saída (TB_Saida)...estou precisando do saldo em estoque e não sei se o calculo é feito direto no vb6 ou no Acsses.
valor = txt_quantidade.Text
   conectdb
      rs.Open "select * from tb_entrada", db, 3, 3
         rs.AddNew
            rs(1) = "" & txt_codigo.Text
            rs(2) = "" & cmb_unidade.Text
            rs(3) = "" & valor
            rs(4) = "" & txt_entrada
            rs(5) = "" & txt_descricao.Text
            rs(6) = "" & txt_fornecedor.Text
            rs(7) = "" & txt_nota.Text
            rs(8) = "" & txt_valor.Text
            rs(9) = "" & txt_custo.Text
            rs(10) = "" & txt_rm.Text
            rs(11) = "" & txt_local.Text
            rs(12) = "" & txt_endereco.Text
            rs(14) = "" & foto
            rs(15) = "" & txt_obs_entrada.Text
         rs.Update

valor1 = txt_quant_saida.Text
conectdb
      rs.Open "select * from tb_saida", db, 3, 3
         rs.AddNew
            rs!codigo = txt_cod_saida.Text
            rs!Unidade = cmb_saida.Text
            rs!quantidade_saida = valor1
            rs!data_saida = txt_dt_saida
            rs!Descricao = txt_desc_saida.Text
            rs!Fornecedor = txt_for_saida.Text
            rs!Destino = cmb_dest_saida.Text
            rs!Colaborador = txt_colaborador.Text
            rs!Imagem = foto
            rs!Observacao = txt_obs.Text
       rs.Update

fechadb


Luis Carlos

#484676 - 27/09/2018 13:54:49

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Acho que você não entendeu minha explicação...

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#484694 - 28/09/2018 14:32:27

WEBMASTER
CURITIBA
Cadast. em:Janeiro/2001


Membro da equipe
rsrsrs
Definitivamente não, se é que ele leu o que você escreveu

WebMaster - VBMania

Nao me mande e-mail com duvidas
Para isso e que existe o forum do VBMania !!!

#484733 - 02/10/2018 12:09:14

LUIZCMF9
BOA VISTA
Cadast. em:Setembro/2018


Citação:
:
:
Quanto ao banco de dados concordo totalmente. Access pode até funcionar e se comportar como um banco de dados, mas não é.

Quanto à estoque, vamos ao raciocínio: Um estoque nada mais é que um setor que movimenta mercadorias, sem necessariamente lidar com a venda, simplesmente controla quantidades, setorização, datas de vencimento(para perecíveis por exemplo) e qualquer outro aspecto que diga respeito ao produto em si. Saldo, não é algo "cadastrável", ele é o resultado da soma de entradas, subtraído da soma das saídas e possivelmente todas as mazelas de provisionamento que você possa possuir no seu regime de estoque. Portanto ter um campo onde diga o valor da quantidade atual de um produto, é um erro de design que pode ser um problema gigantesco em aplicações de maior porte. Em suma, você precisa de uma tabela bem simples de movimentação, mais ou menos assim:
Código do produto - Quantidade - Tipo de Movimentação
1                            - 14                - Entrada
1                            - 9                  - Saída

Vemos claramente aqui o que acontece, temos dois registros de movimentação de produto, 14 entradas e 9 saídas, a query para trazer o saldo atual do produto seria:

SELECT Entradas - Saídas FROM
(SELECT Codigo, Quantidade FROM MOVIMENTACOES WHERE Tipo = 'Entrada'
UNION
SELECT Codigo, Quantidade FROM MOVIMENTACOES WHERE Tipo = 'Saida')


Obviamente não é uma query real mas já passa a idéia básica de como isso deve ser feito. Ela pode ficar bastante complexa para estoque que trabalhe com regimes FIFO, LIFO, JIC, IAS2 ou híbridos destes.

Em resumo, manter um "saldo atual" é receita de desastre e consequentemente, perda de dinheiro, mercadorias e clientes, e, dependendo do caso, até mesmo xadrez. Imagine o seu sistema de estoque falhando para um estoque de remédios por exemplo, ou gerenciando um estoque de resíduos tóxicos...


Estou há dias tentando fazer um calculo matemático no vb6 e não estou conseguindo alguém pode me ajudar.
Tenho duas tabelas  no Acsses que armazenam os dados de entrada (TB_Entrada) e saída (TB_Saida)...estou precisando do saldo em estoque e não sei se o calculo é feito direto no vb6 ou no Acsses.
valor = txt_quantidade.Text
   conectdb
      rs.Open "select * from tb_entrada", db, 3, 3
         rs.AddNew
            rs(1) = "" & txt_codigo.Text
            rs(2) = "" & cmb_unidade.Text
            rs(3) = "" & valor
            rs(4) = "" & txt_entrada
            rs(5) = "" & txt_descricao.Text
            rs(6) = "" & txt_fornecedor.Text
            rs(7) = "" & txt_nota.Text
            rs(8) = "" & txt_valor.Text
            rs(9) = "" & txt_custo.Text
            rs(10) = "" & txt_rm.Text
            rs(11) = "" & txt_local.Text
            rs(12) = "" & txt_endereco.Text
            rs(14) = "" & foto
            rs(15) = "" & txt_obs_entrada.Text
         rs.Update

valor1 = txt_quant_saida.Text
conectdb
      rs.Open "select * from tb_saida", db, 3, 3
         rs.AddNew
            rs!codigo = txt_cod_saida.Text
            rs!Unidade = cmb_saida.Text
            rs!quantidade_saida = valor1
            rs!data_saida = txt_dt_saida
            rs!Descricao = txt_desc_saida.Text
            rs!Fornecedor = txt_for_saida.Text
            rs!Destino = cmb_dest_saida.Text
            rs!Colaborador = txt_colaborador.Text
            rs!Imagem = foto
            rs!Observacao = txt_obs.Text
       rs.Update

fechadb


Depois de muito pesquisar o que voce escreveu...consegui fazer....Valeu muito obrigado!


Luis Carlos

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por LUIZCMF9 em 02/10/2018 12:10:22