Erro ao Gravar
Olá amigos...
Estou com um problema sério... Tenho uma tela onde faço as movimentações (entradas e saídas). O botão gravar faz toda a operação, ou seja, qdo dou entrada num item, ela é gravada, qdo dou uma saída, além da gravação, é feita tbem a movimentação no estoque (baixa ou entrada). O que ta pegando é na saída, principalmente qdo é necessário dar uma baixa. Qdo quero dar uma saida, na tela tem um radiobutton chamado saida. É exibida uma tela com itens pendentes, entao eu escolho um, os campos são preenchidos (dbedits, combobox). Ao clicar no gravar, aparece a mensagem ´saida efetuada com sucesso ´ (esta está correta), e em seguida, às vezes a partir da terceira ou quarta saida, aparece outra, que é:
´ is not a valid integer value
e o conteudo do dbeditSaida e do dbedtHoraSaida sao apagados.
Eu já tentei de várias formas, talvez olhando o codigo vcs possam descobrir onde está o erro....
try
TDS.TransactionID := 1;
TDS.IsolationLevel := xilREADCOMMITTED;
if EstoqueAtual >= strtoint(dbedtQtdeSai.Text) then
(estoqueatual é uma variavel que recebe o estoque atual do item que vem da tabela estoque)
begin
with dmEstoque.cdsBaixaEstoque do
begin
close;
Params.ParamByName(´EST´).AsInteger := strtoint(dbedtQtdeSai.Text);
Params.ParamByName(´CODCART´).AsInteger := CodigoCartucho;
execute;
end;
end;
with dmMovimentacao.cdsMovimentacao do
begin
dmConexao.sqlConexao.StartTransaction(TDS);
edit;
FieldByName(´DT_SAIDA´).AsDateTime := dtpDtSaida.DateTime;
FieldByName(´HR_SAIDA´).AsDateTime := time;
FieldByName(´QTDE_ENT´).AsInteger := strtoint(dbedtQtdeEnt.Text);
FieldByName(´QTDE_SAI´).AsInteger := strtoint(dbedtQtdeSai.Text);
FieldByName(´QTDE_PEND´).AsInteger := Pendentes;
Execute;
if Pendentes = 0 then
begin
FieldByName(´STATUS´).AsString := ´R´;
Application.MessageBox(´Saída efetuada com sucesso!´, ´ Saída´,
MB_OK + MB_ICONINFORMATION);
end
else
dmConexao.sqlConexao.Commit(TDS);
ApplyUpdates(0);
Refresh;
end
except
on E : Exception do
begin
dmConexao.sqlConexao.Rollback(TDS);
ShowMessage(E.Message);
end;
end;
É claro que tem mais linhas de código, porém é só a parte da baixa que esta gerando a mensagem que mencionei acima.
Tudo precisando muito da ajuda de vcs, pois preciso entregar o sistema até segunda, e só falta corrigir este bug...
Estou no aguardo.
Um abraço a todos...
Estou com um problema sério... Tenho uma tela onde faço as movimentações (entradas e saídas). O botão gravar faz toda a operação, ou seja, qdo dou entrada num item, ela é gravada, qdo dou uma saída, além da gravação, é feita tbem a movimentação no estoque (baixa ou entrada). O que ta pegando é na saída, principalmente qdo é necessário dar uma baixa. Qdo quero dar uma saida, na tela tem um radiobutton chamado saida. É exibida uma tela com itens pendentes, entao eu escolho um, os campos são preenchidos (dbedits, combobox). Ao clicar no gravar, aparece a mensagem ´saida efetuada com sucesso ´ (esta está correta), e em seguida, às vezes a partir da terceira ou quarta saida, aparece outra, que é:
´ is not a valid integer value
e o conteudo do dbeditSaida e do dbedtHoraSaida sao apagados.
Eu já tentei de várias formas, talvez olhando o codigo vcs possam descobrir onde está o erro....
try
TDS.TransactionID := 1;
TDS.IsolationLevel := xilREADCOMMITTED;
if EstoqueAtual >= strtoint(dbedtQtdeSai.Text) then
(estoqueatual é uma variavel que recebe o estoque atual do item que vem da tabela estoque)
begin
with dmEstoque.cdsBaixaEstoque do
begin
close;
Params.ParamByName(´EST´).AsInteger := strtoint(dbedtQtdeSai.Text);
Params.ParamByName(´CODCART´).AsInteger := CodigoCartucho;
execute;
end;
end;
with dmMovimentacao.cdsMovimentacao do
begin
dmConexao.sqlConexao.StartTransaction(TDS);
edit;
FieldByName(´DT_SAIDA´).AsDateTime := dtpDtSaida.DateTime;
FieldByName(´HR_SAIDA´).AsDateTime := time;
FieldByName(´QTDE_ENT´).AsInteger := strtoint(dbedtQtdeEnt.Text);
FieldByName(´QTDE_SAI´).AsInteger := strtoint(dbedtQtdeSai.Text);
FieldByName(´QTDE_PEND´).AsInteger := Pendentes;
Execute;
if Pendentes = 0 then
begin
FieldByName(´STATUS´).AsString := ´R´;
Application.MessageBox(´Saída efetuada com sucesso!´, ´ Saída´,
MB_OK + MB_ICONINFORMATION);
end
else
dmConexao.sqlConexao.Commit(TDS);
ApplyUpdates(0);
Refresh;
end
except
on E : Exception do
begin
dmConexao.sqlConexao.Rollback(TDS);
ShowMessage(E.Message);
end;
end;
É claro que tem mais linhas de código, porém é só a parte da baixa que esta gerando a mensagem que mencionei acima.
Tudo precisando muito da ajuda de vcs, pois preciso entregar o sistema até segunda, e só falta corrigir este bug...
Estou no aguardo.
Um abraço a todos...
Roger1976
Curtidas 0
Respostas
Roger1976
29/01/2006
Olá amigos...
Estou com um problema sério... Tenho uma tela onde faço as movimentações (entradas e saídas). O botão gravar faz toda a operação, ou seja, qdo dou entrada num item, ela é gravada, qdo dou uma saída, além da gravação, é feita tbem a movimentação no estoque (baixa ou entrada). O que ta pegando é na saída, principalmente qdo é necessário dar uma baixa. Qdo quero dar uma saida, na tela tem um radiobutton chamado saida. É exibida uma tela com itens pendentes, entao eu escolho um, os campos são preenchidos (dbedits, combobox). Ao clicar no gravar, aparece a mensagem ´saida efetuada com sucesso ´ (esta está correta), e em seguida, às vezes a partir da terceira ou quarta saida, aparece outra, que é:
´ is not a valid integer value
e o conteudo do dbeditSaida e do dbedtHoraSaida sao apagados.
Eu já tentei de várias formas, talvez olhando o codigo vcs possam descobrir onde está o erro....
try
TDS.TransactionID := 1;
TDS.IsolationLevel := xilREADCOMMITTED;
if EstoqueAtual >= strtoint(dbedtQtdeSai.Text) then
(estoqueatual é uma variavel que recebe o estoque atual do item que vem da tabela estoque)
begin
with dmEstoque.cdsBaixaEstoque do
begin
close;
Params.ParamByName(´EST´).AsInteger := strtoint(dbedtQtdeSai.Text);
Params.ParamByName(´CODCART´).AsInteger := CodigoCartucho;
execute;
end;
end;
with dmMovimentacao.cdsMovimentacao do
begin
dmConexao.sqlConexao.StartTransaction(TDS);
edit;
FieldByName(´DT_SAIDA´).AsDateTime := dtpDtSaida.DateTime;
FieldByName(´HR_SAIDA´).AsDateTime := time;
FieldByName(´QTDE_ENT´).AsInteger := strtoint(dbedtQtdeEnt.Text);
FieldByName(´QTDE_SAI´).AsInteger := strtoint(dbedtQtdeSai.Text);
FieldByName(´QTDE_PEND´).AsInteger := Pendentes;
Execute;
if Pendentes = 0 then
begin
FieldByName(´STATUS´).AsString := ´R´;
Application.MessageBox(´Saída efetuada com sucesso!´, ´ Saída´,
MB_OK + MB_ICONINFORMATION);
end
else
dmConexao.sqlConexao.Commit(TDS);
ApplyUpdates(0);
Refresh;
end
except
on E : Exception do
begin
dmConexao.sqlConexao.Rollback(TDS);
ShowMessage(E.Message);
end;
end;
É claro que tem mais linhas de código, porém é só a parte da baixa que esta gerando a mensagem que mencionei acima.
Tudo precisando muito da ajuda de vcs, pois preciso entregar o sistema até segunda, e só falta corrigir este bug...
Estou no aguardo.
Um abraço a todos...
AH, eu me esqueci, estou usando interbase + dbexpress + clientdataset
GOSTEI 0