Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Sürekli Yenileme
#1
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.
Cevapla
#2
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.
Cevapla
#3
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.
Cevapla
#4
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.
Cevapla
#5
(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
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#6
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
Cevapla
#7
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
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#8
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.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Uygulama Sürekli Çalışsın gonulali 2 2.087 30-01-2019, Saat: 16:58
Son Yorum: mcuyan
  [Ödüllü Soru] FMX Android projede ekranın sürekli açık bırakılması Abdullah ILGAZ 1 2.215 17-07-2018, Saat: 12:14
Son Yorum: ozcanm



Konuyu Okuyanlar: 1 Ziyaretçi