İyi çalışmalar arkadaşlar.öncelikle çok kullanıcılı bi programda bir kullanıcının yaptığı değişiklikleri diğer kullanıcıların anında görebilmesi için forumdaki örnek lerden faydalandım.yaptığım işlemler şunlar.ilgili tablonun after post after edit ve after insertlerine triggerlar yazdım.trigger ım şu şekilde
AS
begin
post_event 'KURUMTANIMLARI_GUNCELLENDI';
end
daha sonra programımdan ibeventle bu değişikliklerin olduğunu algılayabiliyorum.asıl sorunum şu.bu değişikliklerden biri gerçekleşince ibquer1.refresh; komutunu çalışıtırıyorum.ama tablodaki değişiklikler görüntülenmiyor.ama ibquery i active false true yapınca listeleniyor.ama bu yöntem tablodaki kayıtların sayısı artınca ve tabloda sık kayıt girilince programı yavaşlatır diye düşünüyorum.(ibquery i sürekli açıp kapamak performans kaybı yapabilir diye düşünüyorum.).bu sorunu şöyle çözdüm .ibqueryi açıp kapamak yerine yada refresh etmek yerine şu kodu yazıyorum. ibquery1.filtered:=true;ibquery1.filtered:=false; yaparak boş bi filtreleme işlemi yapıyorum .bu işlem sonunda tüm değişklikler görüntülenebiliyor.(ha bu arada kayıt girme ve değiştirmeler yada silmede transactionu commitretaining yapıyorum).benim sorum üstadlar sizce bu yöntem doğrumu.query i kapatıp açmak mı yoksa boş bi filtereleme işlemi yapmakmı daha mantıklı .yardımlarınız için teşekkür ederim arkadaşlar.
fire bird vt de refresh sorunu.
Kod: Tümünü seç
procedure TIBQuery.SetFiltered(Value: Boolean);
begin
if(Filtered <> Value) then
begin
inherited SetFiltered(value);
if Active then
begin
Close;
Open;
end;
end
else
inherited SetFiltered(value);
end;