adoquery sadece aktif satır refresh olsun?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
adoquery sadece aktif satır refresh olsun?
Merhaba
adoquery ile herhangi bir kayıdı değiştirdiğimde ya da yeni bir kayıt eklediğimde sadece değişiklik yaptığım satırı nasıl yenileyebilirim.
Bir kayıdı güncellediğimde yada eklediğimde bütün satırları refresh etmek istemiyorum.
adoquery ile herhangi bir kayıdı değiştirdiğimde ya da yeni bir kayıt eklediğimde sadece değişiklik yaptığım satırı nasıl yenileyebilirim.
Bir kayıdı güncellediğimde yada eklediğimde bütün satırları refresh etmek istemiyorum.
Hayır grid üzerinde yapmıyorum eklemeyi
ama eklediğim yada düzelttiğim kayıdı sonuçta gridde gösteriyorum. ve birden fazla tablodan değer alıp tek tabloda güncelleme işlemi yaptığım için sorgum şu şekilde oluor
burda örneğin yeni kayıt eklediğimde queryi tekrar çalıştırmadığımdan malzemead ve grup kısmım boş geliyor query de ama queryi refresh edersem dolu geliyor. ama ben satır bazında refresh etmek istiyorum. yani sadece güncellediğim ya da yeni eklediğim satırı. çünkü ileride kayıtlar artcak.
ama eklediğim yada düzelttiğim kayıdı sonuçta gridde gösteriyorum. ve birden fazla tablodan değer alıp tek tabloda güncelleme işlemi yaptığım için sorgum şu şekilde oluor
Kod: Tümünü seç
SELECT K.*,
(SELECT M.MALZEMEAD FROM
MALZEME M WHERE K.MALZEMENO=M.MALZEMENO ) MALZEMEAD,
(SELECT G.GRUPAD FROM
MALZEME M,GRUP G WHERE K.MALZEMENO=M.MALZEMENO
AND M.MALZEMEGRUP=G.GRUPKOD ) GRUP
FROM STOKKART K WHERE K.DEPONO=:DEPO
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
ADO'nun DataSet bileşenlerini Requery ile güncelliyorum ve çok yüksek miktarlardaki kayıtlarda bile çok sorun olmuyor. Sadece bu işlemden önce bulunduğunuz kaydı hafızaya almanız ve işlemden sonra o satıra konumlanmanız gerekmektedir.
Kod: Tümünü seç
procedure ADORefresh(const ADO:TCustomADODataSet);
var KayitYeri:TBookMarkStr;
begin
if ADO.Active then try
ADO.DisableControls;
KayitYeri:=ADO.Bookmark;
ADO.Requery;
ADO.Bookmark:=KayitYeri;
finally
ADO.EnableControls;
end;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
disablecontrols metodunu kullandığında tablo arka planda yenilenirken değerler nesnelere aktarılmadığı için. performans oldukça yükseliyor. ve arkadaşın da dediği gibi çok yüksek sayıda kayıtlarda bile prpblem olmuyor.
işin bittiğinde tekrar enablecontrols ile tabloya bağlı nesneler veritabanına erişebiliyor.
işin bittiğinde tekrar enablecontrols ile tabloya bağlı nesneler veritabanına erişebiliyor.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)