Mysql veritabanına ODBC + BDE üzerinden bağlanıyorum tabloyu baştan oluşturup verileri Import etmeme rağmen
programı çalıştırdıktan bir müddet sonra uygulama tamamen kapanıyor (sanki ctrl+alt+del den sonlandırılmış gibi)
program tahakkuk tablosunda bazı alanları güncelliyor cache update yöntemi ile güncelleme yapıyorum update düzgün
çalışıyor eğer 100 kadar personeli seçip işlemi yaparsam herhangi bir hata ile karşılaşmıyorum ancak tüm personel
seçilirse (400 civarı) program sonlanıyor.
Delphi ile debug edince acces violation at 0x4da2ef6d :read of address 0x9ec067e8 hatası alıyorum uzun yıllardır
aynı veritabanını kullanmama rağmen ilk defa böyle bir hata ile karşılaştım. Yardımcı olabilecek ve fikirlerini paylaşacak arkadaşlara şimdiden teşekkür ederim.
procedure Tper018f.TahakukQUpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
if UpdateKind= ukModify then
begin
bosq.Close;
bosq.SQL.Clear;
BosQ.SQL.Text:=' update tahakkuk set '
+' NORCALTUT = :NORCALTUT,'
+' HAFTATTUT = :HAFTATTUT,'
+' GENTATTUT = :GENTATTUT,'
+' YILIZINTUT = :YILIZINTUT,'
+' HASTALIKTUT = :HASTALIKTUT,'
+' SOSIZINTUT = :SOSIZINTUT,'
+' GECEZAMTUT = :GECEZAMTUT,'
+' FAZMES1TUT = :FAZMES1TUT,'
+' FAZMES2TUT = :FAZMES2TUT,'
+' FAZMES3TUT = :FAZMES3TUT,'
+' COCUKTUT = :COCUKTUT,'
+' TOPBRUT = :TOPBRUT,'
+' COCUK = :COCUK,'
+' SIGMAT = :SIGMAT,'
+' SIGMAT2 = :SIGMAT2,'
+' VERMAT = :VERMAT,'
+' GENIND = :GENIND,'
+' SKTIND = :SKTIND,'
+' OZELSAGLIK = :OZELSAGLIK,'
+' HAYATSIG = :HAYATSIG,'
+' SSKPRIM = :SSKPRIM,'
+' SSKPRIM2 = :SSKPRIM2,'
+' DAMGAVER =

+' SSKISSIZ = :SSKISSIZ,'
+' SENDIKA = :SENDIKA,'
+' VERGI = :VERGI,'
+' NETTUT = :NETTUT,'
+' YILIZMAT = :YILIZMAT,'
+' ISVISSIZPRIM = :ISVISSIZPRIM,'
+' VIADETUT = :VIADETUT,'
+' TERSBAKIYE = :TERSBAKIYE,'
+' DKULKODU =

+' DKAYITTAR =

+' ASGINDTUT = :ASGINDTUT,'
+' ISVSIGMAT = :ISVSIGMAT,'
+' ISVSIGIND = :ISVSIGIND,'
+' ISVYILIZMAT = :ISVYILIZMAT,'
+' ISVSIGPRM = :ISVSIGPRM '
+' where SIRKOD = :SIRKOD and'
+' DONEM =

+' EKNO = :EKNO and'
+' SICIL = :SICIL';
BosQ.ParamByName('SIRKOD').AsInteger :=sb.SirKod;
BosQ.ParamByName('EKNO').AsInteger :=1;
BosQ.ParamByName('DONEM').AsInteger :=TahakukQDONEM.OldValue;
BosQ.ParamByName('SICIL').AsInteger :=TahakukQSICIL.OldValue;
//
BosQ.ParamByName('NORCALTUT').AsFloat := Roundto(TahakukQNORCALTUT.AsFloat,-2);
BosQ.ParamByName('HAFTATTUT').AsFloat := Roundto(TahakukQHAFTATTUT.AsFloat,-2);
BosQ.ParamByName('GENTATTUT').AsFloat := Roundto(TahakukQGENTATTUT.AsFloat,-2);
BosQ.ParamByName('YILIZINTUT').AsFloat := Roundto(TahakukQYILIZINTUT.AsFloat,-2);
BosQ.ParamByName('HASTALIKTUT').AsFloat := Roundto(TahakukQHASTALIKTUT.AsFloat,-2);
BosQ.ParamByName('SOSIZINTUT').AsFloat := Roundto(TahakukQSOSIZINTUT.AsFloat,-2);
BosQ.ParamByName('GECEZAMTUT').AsFloat := Roundto(TahakukQGECEZAMTUT.AsFloat,-2);
BosQ.ParamByName('FAZMES1TUT').AsFloat := Roundto(TahakukQFAZMES1TUT.AsFloat,-2);
BosQ.ParamByName('FAZMES2TUT').AsFloat := Roundto(TahakukQFAZMES2TUT.AsFloat,-2);
BosQ.ParamByName('FAZMES3TUT').AsFloat := Roundto(TahakukQFAZMES3TUT.AsFloat,-2);
BosQ.ParamByName('COCUKTUT').AsFloat := Roundto(TahakukQCOCUKTUT.AsFloat,-2);
BosQ.ParamByName('TOPBRUT').AsFloat := Roundto(TahakukQTOPBRUT.AsFloat,-2);
BosQ.ParamByName('COCUK').AsInteger := TahakukQCOCUK.AsInteger;
BosQ.ParamByName('SIGMAT').AsFloat := Roundto(TahakukQSIGMAT.AsFloat,-2);
BosQ.ParamByName('SIGMAT2').AsFloat := Roundto(TahakukQSIGMAT2.AsFloat,-2);
BosQ.ParamByName('VERMAT').AsFloat := Roundto(TahakukQVERMAT.AsFloat,-2);
BosQ.ParamByName('GENIND').AsFloat := Roundto(TahakukQGENIND.AsFloat,-2);
BosQ.ParamByName('SKTIND').AsFloat := Roundto(TahakukQSKTIND.AsFloat,-2);
BosQ.ParamByName('OZELSAGLIK').AsFloat := Roundto(TahakukQOZELSAGLIK.AsFloat,-2);
BosQ.ParamByName('HAYATSIG').AsFloat := Roundto(TahakukQHAYATSIG.AsFloat,-2);
BosQ.ParamByName('SSKPRIM').AsFloat := Roundto(TahakukQSSKPRIM.AsFloat,-2);
BosQ.ParamByName('SSKPRIM2').AsFloat := Roundto(TahakukQSSKPRIM2.AsFloat,-2);
BosQ.ParamByName('DAMGAVER').AsFloat := Roundto(TahakukQDAMGAVER.AsFloat,-2);
BosQ.ParamByName('SSKISSIZ').AsFloat := Roundto(TahakukQSSKISSIZ.AsFloat,-2);
BosQ.ParamByName('SENDIKA').AsFloat := Roundto(TahakukQSENDIKA.AsFloat,-2);
BosQ.ParamByName('VERGI').AsFloat := Roundto(TahakukQVERGI.AsFloat,-2);
BosQ.ParamByName('NETTUT').AsFloat := Roundto(TahakukQNETTUT.AsFloat,-2);
BosQ.ParamByName('YILIZMAT').AsFloat := Roundto(TahakukQYILIZMAT.AsFloat,-2);
BosQ.ParamByName('ISVISSIZPRIM').AsFloat:= Roundto(TahakukQISVISSIZPRIM.AsFloat,-2);
BosQ.ParamByName('VIADETUT').AsFloat := Roundto(TahakukQVIADETUT.AsFloat,-2);
BosQ.ParamByName('TERSBAKIYE').AsFloat := Roundto(TahakukQTERSBAKIYE.AsFloat,-2);
BosQ.ParamByName('DKULKODU').AsString :=SB.KullaniciKodu;
BosQ.ParamByName('DKAYITTAR').AsDatetime:=now;
BosQ.ParamByName('ASGINDTUT').AsFloat :=Roundto(tahakukqASGINDTUT.AsFloat,-2);
BosQ.ParamByName('ISVSIGMAT').AsFloat :=Roundto(tahakukqISVSIGMAT.AsFloat,-2);
BosQ.ParamByName('ISVSIGIND').AsFloat :=Roundto(tahakukqISVSIGIND.AsFloat,-2);
BosQ.ParamByName('ISVSIGPRM').AsFloat :=Roundto(tahakukqISVSIGPRM.AsFloat,-2);
BosQ.ParamByName('ISVYILIZMAT').AsFloat :=Roundto(tahakukqISVYILIZMAT.AsFloat,-2);
try
BosQ.ExecSQL;
UpdateAction:=uaApplied;
except
UpdateAction:=uaFail;
tahakukq.RevertRecord;
end;
end;