Somar campo

Delphi

31/07/2013

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.
João Gauer

João Gauer

Curtidas 0

Respostas

Alessandro Yamasaki

Alessandro Yamasaki

31/07/2013

Centena é um campo inteiro ou numerico? passe a estrutura da tabela para nós.
GOSTEI 0
Joel Rodrigues

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.
GOSTEI 0
João Gauer

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

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.
GOSTEI 0
João Gauer

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

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

Joel Rodrigues

31/07/2013

Ah, aí teria que fazer no Firebird.
GOSTEI 0
João Gauer

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

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.
GOSTEI 0
POSTAR