Örnek olarak gösterilen "while" döngüsü tablo sonu gelmeden durmaz. Eğer bu oluyor ise Table2 veya Table17 olaylarında (events) yapılan bir işlem kaynaklıdır ya da bize göstermediğiniz kodlarınız var ve orada yapılan bir işlem sebebiyle olabilir. Mesela çok gördüğüm Application.ProcessMessages kullanımı ekranda ilerleyen satırların kullanıcı tarafından en sonuna gidilmesine izin verebilir.
FirebirdSQL kullanıyorsanız kayıtları tek tek dolaşmadan tek bir SQL komutu ile güncelleme yapabiliyor olmalısınız. Örneğin bir Query nesnesine aşağıdaki benzeri bir SQL komutu ekleyip
Kod: Tümünü seç
update kart set sirano=:deger where carikod=:kod
parametrelerini aşağıdakine benzer şekilde düzenleyip çalıştırabilirsiniz.
Kod: Tümünü seç
Query1.ParamByName('deger').Value := Table17KARTSIRANO_ID.Value;
Query1.ParamByName('kod').Value := CariKodu;
Query1.ExecSQL;
Parametreler kullandığınız veritabanı bileşenlerine göre düzenlenmesi gerekecektir.
SQL içindeki "kart" güncelleme yaptığınız tablo adı, "carikod" ilgili tablo içinde bir kolondur. Sadece parametre olarak verilen belirli kayıtların cari kodların güncellenmesi için kullanılabilir. Sizin işleyişinize uygun şekilde güncellemeniz gerekir.
Komut çalıştıktan sonra Commit veya CommitRetaining kullanmalı ve Tablo nesnelerinin ekranda güncellenmesi gerekiyor ise kapat/aç veya yenile yapmalısınız.