
Asagida yazdigim kod ile stok kartlari tablosunun 'bakiye' isimli alanini stok hareket kartlarindaki degerleri sql vasitasi ile hesaplayaip guncellemek istiyorum. Guncelleme islemini baslattigimda guncellemenin yapildigini yani bakiye isimli alanlara hesaplanan degerlein yazildigini gorebiliyorum. Fakat program kapatilip tekrar acildiginda bakiye isimli alandaki degerlerin ucmus oldugunu goruyorum. Yani guncelleme esnasinda sanirim degerler fiziksel olarak db ye yazilmiyor ve hafizada tutuluyor. Program kapatildiginda ise dogal olarak bu veriler ucuyor.
Bu degerlerin guncelleme esnasinda db ye fiziksel olarak yazilimini nasil saglayabilirim.
Kullandigim kod asagidadir.
Not : Eminim Sp kullan diyen arkadaslar olacaktir. Ama DB programciliginda henuz cok yeniyim. SP kullanmayi denedim ama yapamadim.
Kod: Tümünü seç
dm.lks_items.first;
while not dm.lks_items.eof do
begin
dm.lks_items.edit;
str1:= dm.lks_items.FieldByName('kod').asstring;
dm.q_sh.Close;
dm.q_sh.SQL.Clear;
dm.q_sh.SQL.Add('select sum(amount*carpan) as bky from lks_stkhar where kod =');
dm.q_sh.SQL.Add(''''+str1+'''');
dm.q_sh.Open;
dm.lks_items.FieldByName('kalan').asbcd :=dm.q_sh.FieldByName('bky').asbcd;
dm.lks_items.post;
dm.lks_items.Next;
end;