No lo he probado, espero que te funcione
Código Delphi
[-]var
CodigoArtic: Integer;
CantidadArtic: Double;
oSQLQry: TSQLQuery;
oDSProvider: TDataSetProvider;
oCDSet: TClientDataSet;
...
case UpdateKing of
ukInsert:
begin
if (SourceDS.Name = 'SQLDataSetDetalle') then
if (DeltaDS.FieldByName('CANTIDAD').AsFloat > 0) then
begin
CodigoArtic := DeltaDS.FieldByName('COD_ARTIC').AsInteger;
CantidadArtic := DeltaDS.FieldByName('CANTIDAD').AsFloat;
oSQLQry := TSQLQuery.Create(nil);
oSQLQry.SQLConnection := SQLConnectionMovimientos;
oSQLQry.SQL.Add('SELECT CANTIDAD FROM "Articulos" WHERE CODIGO = ' + IntToStr(CodigoArtic));
oDSProvider := TDataSetProvider.Create(nil);
oDSProvider.DataSet := oSQLQry;
oCDSet := TClientDataSet.Create(nil);
oCDSet.ProviderName := oDSProvider;
oCDSet.Open;
oCDSet.Edit;
oCDSet.FieldByName('CANTIDAD').AsFloat := (oCDSet.FieldByName('CANTIDAD').AsFloat - CantidadArtic);
oCDSet.Post;
FreeAndNil(oCDSet);
FreeAndNil(oDSProvider);
FreeAndNil(oSQLQry);
end;
end;
end;
Un saludo