Delphi Can

Orjinalini görmek için tıklayınız: Sürekli Yenileme
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Merhabalar,
Android Projem mssql database bağlı. proje içinde bir tabloyu 2dk da bir sorgulama yaptırıyorum. Yeni bir bilgi var ise ekrandaki bilgileri yenilesin diye.
Bu şekilde çalışıyor sorun yok. Sorum şu.

Başka bir yöntem ile nasıl yapabilirim bunu? Yani 2dkda bir tüm tüm tablodaki veriler değişikmi diye sorgulamasında değişiklik olduğunda ben projedeki bir şeyi tetiklesemde o zaman güncellese kendini? Nasıl olabilir? Fikir verebiilirmisiniz?

Teşekkür Ederim..

yani amacım sql tabloda bir degeri degistirdiğimde andoid projedeki degerleride değiştirmek otomatik olarak.
Merhaba,
DB tarafında herhangi bir update, insert veya delete gibi veri kümesi üzerinde değişiklik yapıldığı DB Event'larla anlaşılır. 
Client uygulama tarafında ise yakalamak istediğiniz DB olayını tanımlarsınız. Belirlediğiniz zaman aralığında, olay gerçekleşirse yapmak istediğiniz işlemi (refresh, notification vb.) gerçekleştirirsiniz. 
Clien tarafı için FireDac kullanıyorsanız, DB olaylarını yakalamak için TFDEventAlerter (Unidac için TUniAlerter) bileşenini kullanabilirsiniz.
Bir ara TIMESTAMP alanını kullanmıştım. Her kayıt değişikliğinde tablo bazında sıralı bir değer üretiyor.

Böylece son aldığın değerden yüksek olanları sırayla çağırdığında tüm değişen ve eklenen kayıtları alıyorsun.

Epey performanslı olmuştu.
multi query ile yapabilirsiniz sanıyorum denemedim ama,
öncelikle bir değişkeni set eder query sini çalıştırır sonucunu set edilen değişkene atarsınız
sonrasında 2 query dede bu set ettiğiniz değişkeni limit alanında büyük ihtimal kullanabilirsiniz,
böylece tek query göndererek 1 kerede hall edilmiş olur.
komplike innerli joinerli query ler önermiyorum index vs bile olsa tablo şiştikçe sunucu loadlarını şişiriyor,
disk io larda sorunlar çıkmaya başlıyor.
(28-12-2018, Saat: 09:37)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,
DB tarafında herhangi bir update, insert veya delete gibi veri kümesi üzerinde değişiklik yapıldığı DB Event'larla anlaşılır. 
Client uygulama tarafında ise yakalamak istediğiniz DB olayını tanımlarsınız. Belirlediğiniz zaman aralığında, olay gerçekleşirse yapmak istediğiniz işlemi (refresh, notification vb.) gerçekleştirirsiniz. 
Clien tarafı için FireDac kullanıyorsanız, DB olaylarını yakalamak için TFDEventAlerter (Unidac için TUniAlerter) bileşenini kullanabilirsiniz.

Banada sık sık lazım oluyor, UniAlerter kullanan oldumu acaba
Selamlar. Konu havada kalmasın..
Araştırmalarım sonucunda, Kendi sitesinde yazdığı gibi sadece Oracle, PostgreSQL, and InterBase(Firebird) destekliyormuş.
https://www.devart.com/unidac/docs/devar...lerter.htm

Peki sorum şu Smile Ben her defasında yeni kayıt var mı diye sorgulamasamda tabloda son değişiklik saatini kontrol etsem eğer tarih farklı ise yeniletsem nasıl olur?

SELECT top 2 last_user_update,name,database_id
FROM sys.dm_db_index_usage_stats us JOIN sys.tables t ON t.object_id = us.object_id order by last_user_update desc
Tablonuza After Insert yada Update trigger ile kontrol edip, değişen yada eklenen ID yi yeni bir tabloya atsanız ve onu kontrol edip ekrana yansıtsanız çok mu basit bir yöntem düşünmüş oluruz Smile
TIMESTAMP alanı dışında SQL SERVER'ın istemci tarafı ile haberleşmesi için SERVICE BROKER hizmeti de kullanılabilir.

SOCKET için DLL yazıp TRIGGER içinden de çağırabilirsin.