Como atualizar tabela com instrução SQLgt;gt;gt;gt;gt;

09/12/2003

1

Amigos, gostaria que me ajudasem com mais este assunto.
Possuo em banco de dados duas tabelas Uma ´Tab_Estoque´ é aonde ficará armazenado os dados de todo estoque, em outra ´Tab_Entrada_estoque´ ficará arzenado os dados de entradas dos produtos recem chegados a empresa.
nas duas tenho um campo em comun ´Quantidade´ gostaria de quando dar entrada em um produto na tabela ´Tab_Entrada_Estoque´ automaticamente fosse somado ao campo ´Quantidade´ da Estoque. Já tentei da seguinte forma: Criei um TRIGGER para a Tabela ´Tab_estoque´ para fazer atualizaçao.
Agora como fazer para atualizar um campo de uma tabela dando entrada em outra tabela.
Poderia criar um relacionamento entre estes dois campos?
Se possivel como fazer?
Por favor me ajudem estou precisando muito.
Trabalho com Interbase 6.5 e Delphi 7.
Erivan Marinho.


Responder

Posts

09/12/2003

Nigro

Creio que o correto seria o campo código ser comum entre as duas tabelas e também esse campo fosse a chave em cada tabelas, pois esse campo não varia, enquanto que o campo quantidade sofre variação.


Responder

09/12/2003

Tnaires

Olá Edivan

Quando eu fiz isso, fiz da seguinte forma:
Na tabela de entrada de estoque, entre outros campos, coloquei o código do produto cujo estoque será atualizado, e a quantidade que entrou. Portanto, a relação existente entre a tabela de entrada de estoque e a de estoque é justamente o código do produto. No Delphi, simplesmente coloquei uma Query com um comando Update que aceitasse dois parâmetros: o código do produto a ser atualizado e a quantidade. Seria algo assim:

UPDATE Tab_Estoque SET
quantidade = :quantidade
WHERE codigo = :codigo

Quando o usuário inseria o estoque, o programa passava os parämetros e chamava o método ExecSQL do Delphi, no caso, usei componente BDE, deve haver método semelhante no TADOQuery.
Deve haver maneiras melhores de fazer isso, mas essa é minha sugestão :D
Sucesso


Responder

09/12/2003

Nilton

Não sei se estamos falando do mesmo assunto mais la vai:
Abra o DataModule,selecione a tabela Estoque e nas propiedades da tabela clique em MasterSource,escolha a tabela a ser relacionada,depois clique em master field,abrirá uma janela onde você deverá indicar o secundaryIndex,depois escolha os dois campos em comum das tabelas,sendo um PK e o outro FK,clique em OK,se não der nenhuma mensagem de erro,da próxima vez que vc cadastrar um produto,na outra tabela já será inserido os produtos relacionados.
Sucesso!


Responder

09/12/2003

Einstein

no evento AffterPost do Compoenten que tá usando pra fazer a conexão com o Banco de dados insira o seguinte código:

crie uma instrução pra filtrar pelo Código do Produto do Registro que vc tá atualizando.
depois faça o seguinte:
TabelaEstoque.Edit,;
TabelaEstoqueEstoque.AsCurrency:=TabelaEstoqueEstoque.AsCurrency+TabelaEsntradaQuantidade.AsCurrency.
TabelaEstoque.Post;
TabelaEstoque.Close;

no evento BeforeDelete vc faz a mesma coisa só que no lugar de somar(+) vc deve subtrair(-);

valeu.


Responder

09/12/2003

Tnaires

A sugestão do einstein é simples e direta... :D


Responder