Fórum .:: Atualizar estoque com SQL ::. #171532

25/07/2003

0

Ola pessoal tudo bem ?

Estou usando o Banco Paradox e o seguinte código para atualizar meu estoque :

var registro : integer;
begin
REgistro := table1codprodvendas.AsInteger;
table2.First; // coloca no inicio
While not table1.Eof Do // enquanto nao chegar no final
begin
If Table2Codigoprod.Asinteger = Registro then
begin
Table2.Edit;
table2estoque.Asfloat:= table2estoque.Asfloat - table1qtd.Asfloat;
table2.post;
end;
table2.Next; // nao encontrando avança para proximo produto
end;

O sistema compila sem problemas, mas na hora de executar a rotina meu programa trava.
Não seria mais fácil fazer essa rotina em SQL?
Se alguém tiver algum exemplo pra me passar eu agradeceria, ou também se tivesse alguma explicação do porque meu programa trava com essa rotina também seria de grande ajuda.

Agradeço novamente a atenção de vocês. :roll:

[]´s


Shuljenko

Shuljenko

Responder

Posts

26/07/2003

Jeancamila

Colega,

coloque os campos das tabelas para poder analisar!

Grato

Jean


Responder

Gostei + 0

26/07/2003

Joilson_gouveia

Cara,
O código trava porque a Table1 não tem o NEXT. Fica em Loop...
Verifique se o seu código em vermelho abaixo não estaria errado...
T+

var registro : integer;
begin
REgistro := table1codprodvendas.AsInteger;
table2.First; // coloca no inicio
While not table1.Eof Do // enquanto nao chegar no final
begin
If Table2Codigoprod.Asinteger = Registro then
begin
Table2.Edit;
table2estoque.Asfloat:= table2estoque.Asfloat - table1qtd.Asfloat;
table2.post;
end;
[color=red:1091a40c50]table2.Next; // nao encontrando avança para proximo produto [/color:1091a40c50]end;


Responder

Gostei + 0

26/07/2003

_nekinho_

Supondo q o nome da tabela do estoque e produtos
e o campo que contem o estoque é ESTOQUE, seria assim

UPDATE produto SET estoque = estoque - :QtdVendida
WHERE CodProduto = :CodProduto;

Simples né?
Na aplicação seria,

QryBaixaEstoque.ParamBy(´QtdVendida´).AsFloat := 10; // 10 vendidos
QryBaixaEstoque.ParamBy(´CodProduto´).AsInteger := 1207;
QryBaixaEstoque.ExecSQL;

QryBaixaEstoque é um componente estoque em q sua propriedade SQL... tem aquela Sql lá d cima =) Simples né? Boa Sorte e divirta-se meu caro.

´Se alguem souber d emprego na area de informatica em Fortaleza-CE me avisa heim =)´ (Eu mesmo) jnelson3@ig.com.br


Responder

Gostei + 0

26/07/2003

Shuljenko

Mas é o seguinte, até foi falha minha em não ter colocado isso antes, o campo ESTOQUE está na tabela PRODUTOS e é um campo N ( estou usando paradox ) e o campo QTD está na tabela de VENDAS e tbm é um campo N , não estou conseguindo conciliar essas duas tabelas, já que no código que me passaram trabalha somente com uma única tabela? estou certo? porque não estou conseguindo aqui mesmo... Desculpem a insistência pois sou novo no Delphi e estou aprendendo na medida em que estou desenvolvendo o meu sistema.

Agradeço a todos novamente ,

TABELA PRODUTOS

CodigoProd - Numerico
Descricao - Alpha
Unidade - Alpha
Valor - Numerico
Estoque - Numerico
Est_minimo - Numerico

TABELA VENDAS

Codvendas - +
Mesa - Alpha
CodProdVendas - Numerico
QTD - Numerico
CodFunc - Alpha


[]´s


Responder

Gostei + 0

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

Aceitar