Somar campo
Bom dia pessoal, sou um profissional de rede portanto não tenho muito conhecimento em programação... Minha dúvida é o seguinte:
A tabela tem dois campos, centena que é chave primaria e valor, quando adicionar no banco de dados exemplo: centena 110 e valor 200, e depois adicionar centena 110 valor 10, gostaria que somasse o valor, gostaria de saber como fazer isso no delphi, do jeito que fiz ele da erro quando adiciono duas vezes a mesma seqüência.
A tabela tem dois campos, centena que é chave primaria e valor, quando adicionar no banco de dados exemplo: centena 110 e valor 200, e depois adicionar centena 110 valor 10, gostaria que somasse o valor, gostaria de saber como fazer isso no delphi, do jeito que fiz ele da erro quando adiciono duas vezes a mesma seqüência.
João Gauer
Curtidas 0
Respostas
Alessandro Yamasaki
31/07/2013
Centena é um campo inteiro ou numerico? passe a estrutura da tabela para nós.
GOSTEI 0
Joel Rodrigues
31/07/2013
Não ficou muito claro onde e o que você quer somar.
Sobre o erro que está dando, provavelmente é por que a coluna CENTENA é chave primária e você está tentando inserir duas vezes a mesma centena. Neste caso, acho que a chave seria composta por CENTENA e VALOR.
Sobre o erro que está dando, provavelmente é por que a coluna CENTENA é chave primária e você está tentando inserir duas vezes a mesma centena. Neste caso, acho que a chave seria composta por CENTENA e VALOR.
GOSTEI 0
João Gauer
31/07/2013
Realmente não ficou muito claro, centena seria a chave primaria... centena seria o código, o que eu quero em poucas palavras, é que quando for inserir um código que já esta cadastrado no banco, some com o valor com já cadastrado para aquela centena. Obrigado pela ajuda.
GOSTEI 0
Joel Rodrigues
31/07/2013
Qual banco de dados você está utilizando? Creio que precise fazer um trigger no banco para que ao inserir, se já existir essa centena, apenas somar o valor no registro existente.
Se preferir fazer pelo Delphi, antes de inserir você precisa fazer um select e verificar se já existe essa cetena cadastrada. Se existir, faz um update, se não, faz um novo insert.
De toda forma precisamos saber como está seu código.
Se preferir fazer pelo Delphi, antes de inserir você precisa fazer um select e verificar se já existe essa cetena cadastrada. Se existir, faz um update, se não, faz um novo insert.
De toda forma precisamos saber como está seu código.
GOSTEI 0
João Gauer
31/07/2013
Será que é mais fácil fazer no banco ou no delphi? fiz no firebird e também no acess...
GOSTEI 0
Joel Rodrigues
31/07/2013
Eu faria no banco, pois é mais fácil de alterar depois. Caso você precise mudar essa regra, altera só no banco sem precisar recompilar a aplicação.
GOSTEI 0
Joel Rodrigues
31/07/2013
Ah, aí teria que fazer no Firebird.
GOSTEI 0
João Gauer
31/07/2013
Vou colocar a mão na massa. Obrigado até agora, se tiver dificuldade aviso aqui.
GOSTEI 0
Joel Rodrigues
31/07/2013
Manda ver. Algumas dicas que podem ser úteis na construção do trigger:
- Você precisará fazer um trigger para INSERT;
- Você precisará fazer um select filtrando se existe um registro cuja coluna CENTENA seja igual ao INSERTED.CENTENA, ou seja, o registro que está sendo inserido;
- Se existir, você faz um update somando VALOR = VALOR + INERTED.VALOR nesse registro;
Abraço e boa sorte.
- Você precisará fazer um trigger para INSERT;
- Você precisará fazer um select filtrando se existe um registro cuja coluna CENTENA seja igual ao INSERTED.CENTENA, ou seja, o registro que está sendo inserido;
- Se existir, você faz um update somando VALOR = VALOR + INERTED.VALOR nesse registro;
Abraço e boa sorte.
GOSTEI 0