Fórum Somar campo #450119

31/07/2013

0

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

Responder

Posts

31/07/2013

Alessandro Yamasaki

Centena é um campo inteiro ou numerico? passe a estrutura da tabela para nós.
Responder

Gostei + 0

31/07/2013

Joel Rodrigues

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.
Responder

Gostei + 0

31/07/2013

João Gauer

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.
Responder

Gostei + 0

31/07/2013

Joel Rodrigues

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.
Responder

Gostei + 0

31/07/2013

João Gauer

Será que é mais fácil fazer no banco ou no delphi? fiz no firebird e também no acess...
Responder

Gostei + 0

31/07/2013

Joel Rodrigues

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.
Responder

Gostei + 0

31/07/2013

Joel Rodrigues

Ah, aí teria que fazer no Firebird.
Responder

Gostei + 0

31/07/2013

João Gauer

Vou colocar a mão na massa. Obrigado até agora, se tiver dificuldade aviso aqui.
Responder

Gostei + 0

31/07/2013

Joel Rodrigues

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.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar