Forum

SQL Express Kullanı...
 
Bildirimler
Hepsini Temizle

[Çözüldü] SQL Express Kullanıcı Online durumu

3 Yazılar
2 Üyeler
0 Likes
692 Görüntüleme
(@batuhanilter)
Gönderiler: 19
Eminent Member
Konu başlatıcı
 

merhaba,

Amatör olarak yazılımla ilgileniyorum. Yaptığım bir programda kullanıcılar var ve bu kullanıcıların online olup olmadıklarını kontrol etmem gerekiyor. Bunun için kullanıcı kısmında bir durum sütunu oluşturdum. Kullanıcılar programı açtığı zaman her saniye bu kısmı 'true' olarak değiştiriyorlar. Daha sonra sql bir procedure ile bu kısımları okuyor ve 'true' olanları online olarak değiştiriyor. Sonrada herkesi 'false' olarak değiştiriyor. Üç saniye sonra sql sorgusu tekrar çalışıp 'true' olanları kontrol edip online yapacak, 'false' olanları ve online olanları offline olarak değiştirecekti. Fakat express sürümü kullandığım için job kullanamiyorum. Yaptığım sistem karışık mı hiçbir fikrim yok. Kendi mantığımla oluşturmaya çalıştım. Fakat istediklerimi yapamadım. Başka bir program daha yazıp bu procedure'ü sürekli çalıştırabilirim. Ama bu projenin hatalara ve sıkıntılara çok daha açık olmasına neden oluyor. Bu yüzden bu yaptığım işlemin daha kolay bir yolu varmı veya bu procedure'ü çalıştırmamın daha sağlıklı bir yolu var mı ? Yardımcı olursanız çok memnun olurum biraz çıkmaza girdim.

 
Gönderildi : 12/01/2021 12:50
Konu Etiketleri

(@mehmetsucu)
Gönderiler: 85
Estimable Member
 

Merhaba @batuhanilter

Exe ye login olan kullanıcılar için bir login tablosu hazırlayabilirsin. Giriş yapan kullanıcı bilgilerini buraya insert edip tüm bilgiler buradan alınabilir. Devexpres ile ip, exe bilgileri, pc adı gibi istediğin alanların tümünü içeri alabilirsin. Exe de kullanıcının verilen süre içinde giriş yaptığı loginId ile yapılan son güncellemeyi bir sütun açıp içeri update edilebilir. 

Aslında yazıklarından bunu yapmışsın, job u kodun içine yazman gerekiyor timer ile ya da sql sürümünü yükseltebilirsin.

Önemli olan LoginId, CikisTarihi (program kapatıldığında update edilecek alan), SonIslemTarihi(programda verilen sürede işlem yapıldığında update edilecek alan)

Yazdığın query deki şarta:

 WHERE 
AND (SonIslemTarihi IS NOT NULL)
AND (CikisTarihi IS NULL)
AND DATEDIFF( MINUTE, SonIslemTarihi , GETDATE()) <3 -- süre istenilen şekilde ayarlanabilir. 

Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 12/01/2021 13:36

(@batuhanilter)
Gönderiler: 19
Eminent Member
Konu başlatıcı
 

merhaba @mehmetsucu

Gerçekten çok teşekkürler. İstediğim şey buydu.

 
Gönderildi : 12/01/2021 13:48

Paylaş: