Fórum eu dnovo 2 #9896
06/10/2009
0
update.Add('preco_venda=:Pvenda, ');
update.Add('quantidade_embalagem=:Pembalagem, ');
update.Add('peso=:Ppeso, ');
update.Add('estoque=estoque+:Pquantidade ');
update.Add('where produtoid=:Pprodutoid'); quando eu dou um execute no clientdataset pra alterar a tabela de produtos funciona normalmente mais nao altera o saldo só altera quando eu fecho a aplicacao se estiver 10 em estoque e eu adicionar 5 fica la os 10 mais quando eu fecho o sistema e volto dnovo tem 15 como se nao tivesse atualizando nao saquei o que acontece!
Paulo Silva
Curtir tópico
+ 0Post mais votado
09/10/2009
tclientdataset(ds4.dataset).CommandText:=update.Text;
tclientdataset(ds4.dataset).open; fiz assim mais deu deadlock algo assim usei o applyupdates(-1) no after insert essa onça nao funciona ja ta me deixando de cabelo em pé
Paulo Silva
Gostei + 1
Mais Posts
07/10/2009
Wesley Yamazack
Este Update que você usa seria uma query ? Certo ? E dai você passa os parametros pelo teu ClientDataSet, Certo ? No momento que você manda executar, você esta dando um applyupdates no teu ClientDataset ?
Se estiver , faça um pequeno exemplo e me mande para poder analisar melhor o teu problema.
Um abraço
Wesley Y
Gostei + 0
07/10/2009
Paulo Silva
update.Add('update produto set margen=:Pmargem, ');
update.Add('preco_venda=:Pvenda, ');
update.Add('quantidade_embalagem=:Pembalagem, ');
update.Add('peso=:Ppeso, ');
update.Add('estoque=estoque+:Pquantidade ');
update.Add('where produtoid=:Pprodutoid'); tclientdataset(ds4.dataset).Close;
tclientdataset(ds4.dataset).CommandText:=update.Text;
tclientdataset(ds4.dataset).Params.ParamByName('pmargem').AsCurrency:=30;
tclientdataset(ds4.dataset).Params.ParamByName('pvenda').AsCurrency:=50;
tclientdataset(ds4.dataset).Params.ParamByName('Pembalagem').AsCurrency:=1;
tclientdataset(ds4.dataset).Params.ParamByName('Ppeso').AsCurrency:=500;
tclientdataset(ds4.dataset).Params.ParamByName('Pquantidade').AsCurrency:=10;
tclientdataset(ds4.dataset).Params.ParamByName('Pprodutoid').asinteger:=2;
tclientdataset(ds4.dataset).Execute; Eu fiz da forma que esta acima citado tem alguma coisa errada ae?
Gostei + 0
07/10/2009
Paulo Silva
update.Add('update produto set margen=:Pmargem, ');
update.Add('preco_venda=:Pvenda, ');
update.Add('quantidade_embalagem=:Pembalagem, ');
update.Add('peso=:Ppeso, ');
update.Add('estoque=estoque+:Pquantidade ');
update.Add('where produtoid=:Pprodutoid'); tclientdataset(ds4.dataset).Close;
tclientdataset(ds4.dataset).CommandText:=update.Text;
tclientdataset(ds4.dataset).Params.ParamByName('pmargem').AsCurrency:=30;
tclientdataset(ds4.dataset).Params.ParamByName('pvenda').AsCurrency:=50;
tclientdataset(ds4.dataset).Params.ParamByName('Pembalagem').AsCurrency:=1;
tclientdataset(ds4.dataset).Params.ParamByName('Ppeso').AsCurrency:=500;
tclientdataset(ds4.dataset).Params.ParamByName('Pquantidade').AsCurrency:=10;
tclientdataset(ds4.dataset).Params.ParamByName('Pprodutoid').asinteger:=2;
tclientdataset(ds4.dataset).Execute; Eu fiz da forma que esta acima citado tem alguma coisa errada ae? estou usando um clientdataset + Sqldataset+datasetprovider
Gostei + 0
08/10/2009
Wesley Yamazack
Você esta atualizando os dados do produto "2", o que esta fazendo esta correto, porém falta um cds.ApplyUpdates(-1); Para que ele possa confirmar a alteração. Pois quando você trabalha com CDS, ele trabalha todos os regristros em memória, para confirmar as alterações usamos o cds.ApplyUpdates(-1), geralmente no evento afterInsert, e afterDelete, veja o exemplo.
procedure TFrmCliente.cdsClienteAfterInsert(DataSet: TDataSet);
begin
cdsCliente.ApplyUpdates(-1);
end;
Veja se isso irá resolver teu problema.
Um abraço
Wesley Y
Gostei + 0
09/10/2009
Wesley Yamazack
Um abraço
Wesley Y
Gostei + 0
13/10/2009
Wesley Yamazack
Att,
Wesley Y
Gostei + 0
14/10/2009
Paulo Silva
Gostei + 0
14/10/2009
Wesley Yamazack
Coloque o apply updates no afterpost, e não no afterinsert, como eu havia lhe falado. E veja se resolve. Eu vou fazer o exemplo para você.
Att,
Wesley Y
Gostei + 0
16/10/2009
Paulo Silva
Gostei + 0
16/10/2009
Paulo Silva
Gostei + 0
16/10/2009
Paulo Silva
Gostei + 0
16/10/2009
Paulo Silva
Gostei + 0
16/10/2009
Paulo Silva
Gostei + 0
16/10/2009
Wesley Yamazack
Você fez o que tinha te falado no post anterior ??
"Coloque o apply updates no afterpost, e não no afterinsert, como eu havia lhe falado. E veja se resolve. Eu vou fazer o exemplo para você. "
Att,
Wesley Y
Gostei + 0
17/10/2009
Paulo Silva
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)