Programda Online olanlar

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
cmkare
Üye
Mesajlar: 177
Kayıt: 23 Ağu 2010 11:29

Programda Online olanlar

Mesaj gönderen cmkare »

Merhabalar, Programım ağ üzerinde çalışıyor.
Program Kaç kişide açık olduğunu kimlerin o anda programı kullandığını nasıl anlayabilirim?
Kullanıcı avatarı
mustafasoy
Üye
Mesajlar: 154
Kayıt: 02 Ağu 2013 05:00
Konum: istanbul
İletişim:

Re: Programda Online olanlar

Mesaj gönderen mustafasoy »

Sql server kullanıyorsan belki fikit verebilir


declare @tbl table (spid varchar(50),ecid varchar(50),status varchar(50),loginname varchar(50),
hostname varchar(50),blk varchar(50),dbname varchar(50),cmd varchar(50),request_id varchar(50))
insert @tbl
exec sp_who
select * from @tbl where dbname='DATABASEADI'
http://www.mustafasoy.com.tr
Nasıl ki Soru sorarak öğrendiyseniz , öğrendiklerinizi cevap vererek öğretiniz.
mahsuni
Üye
Mesajlar: 99
Kayıt: 21 Haz 2003 01:09
Konum: Ankara-Mamak

Re: Programda Online olanlar

Mesaj gönderen mahsuni »

firebird için

Kod: Tümünü seç

select
*
from MON$ATTACHMENTS
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Programda Online olanlar

Mesaj gönderen xozcanx »

Bu işi giriş yapan kullanıcılar için yapmak istiyorsan kullanıcılar tablonda bir alan oluştur DURUM diye ve kullanıcı giriş yaptığında bu alanın değerini True çıkış yaptığında ise False yaparsın bu şekide kullanıcı bazlı olarak bir kontrol sağlayabilirsin. Ulaşmak istediğin bilgi bu ise tabi.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Programda Online olanlar

Mesaj gönderen fesiharslan »

Merhaba;
Daha önce bu konuda küçük bir çalışmam oldu. Çalışmam sonucunda bu tip bilgilerin veri tabanına tutulmaması yönündedir.
Sebebi ise kullanıcı kontrolü dışında uygulama kapatıldığında veri tabanına güncelleme yapılamıyor. Bağlantısı koptuğu halde aktif görünüyor.

Çözüm;
DataSnap benzeri Client-Server uygulamalar ile Client takibi yapmak. Çok katmanlı mimarilerde sunucu uygulaması sizin adınıza, kendisine bağlı tüm Client'lerin bilgilerini tutar.
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Programda Online olanlar

Mesaj gönderen adelphiforumz »

veritabanı kullanıyorsan sql cumlesinden faydalanabilirsin
SELECT loginame,hostname,program_name,net_address, * FROM sys.sysprocesses with(nolock)
where ......
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
cmkare
Üye
Mesajlar: 177
Kayıt: 23 Ağu 2010 11:29

Re: Programda Online olanlar

Mesaj gönderen cmkare »

Merhabalar,

xozcanx hocam dediğin gibi yapmıştım ama @fesiharslan hocamın dediği gibi oluyor. kullanıcı kontrolü dışında kapandığında halan açık görünebiliyor..
@adelphiforumz hocam, gönderdiğin kodu çalıştırıyorum listeliyor ama, program çalışan pcnin sadece mac adresini listeliyor. Ip adres ve pc ismini listelemesi için ne yapmam gerek acaba? Çünkü o mac adresin hangi pcye ait olduğunu bilmiyorum..
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Programda Online olanlar

Mesaj gönderen mussimsek »

Veritabanına yazabilirsiniz. Kontrolsüz kapatma sonucunda, kullanıcı sistemde gözüküyorsa, tekrar giriş yaparken doğru kullanıcı adı ve şifreyi girerse, sisteme alırsınız ve "şu an sistemde gözüküyorsunuz, programı şu şu şekilde kapatınız" diye uyarı verirsiniz.
Listeniz her zaman %100 doğru olmaz ama 1-2 kullanıcı sistemde olmadığı halde sistemde gözükse çok sıkıntı olmaz.
Kolay gelsin.
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Programda Online olanlar

Mesaj gönderen xozcanx »

Veritabanı olarak ne kullandığını belirtebilir misin :wink:
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
enesborankurt
Üye
Mesajlar: 37
Kayıt: 13 Oca 2016 10:53

Re: Programda Online olanlar

Mesaj gönderen enesborankurt »

bende senin yapına benzer bir yapı kullanıyorum 1 tane server n tane client olarak ve log tuttra bilirsin serverSocket bu konuda işine yarıya bilir tabi sorun bu ise
Kullanıcı avatarı
badkursat
Üye
Mesajlar: 84
Kayıt: 03 Mar 2014 08:58

Re: Programda Online olanlar

Mesaj gönderen badkursat »

Timer koyup belli sürelerde çevrim içi kullanıcılarla veritabanındaki kullanıcıları karşılaştırıp uygun olamayan kullanıcıların bilgilerini boşaltabilirsin.
cmkare
Üye
Mesajlar: 177
Kayıt: 23 Ağu 2010 11:29

Re: Programda Online olanlar

Mesaj gönderen cmkare »

Veri tabani olarak mssql kullaniyorum.
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Programda Online olanlar

Mesaj gönderen m_ekici »

Merhaba

SQL bağlanan sessionları tututyor. Bağlantı yaparken bilgisayar adını connectiona eklersen hangi bilgisayarların bağlı olduğunu gerçek zamanlı takip edersin. bağlantı düştüğünde SQL den de session kapanıyor. Connection u açmadan önce program adı process ID yi ADO connection a aşağıdaki gibi ekliyorum.

Kod: Tümünü seç

PrgID := 'INFO_PrgAdi_'+TermAdi+'_'+IntToStr(GetCurrentProcessId));
 Connection.Properties['Application Name'].Value := DBF.PrgID;
 Connection.ConnectionString := 'Provider.................';

Kod: Tümünü seç

select program_name from master.dbo.sysprocesses where program_name LIKE 'INFO_PrgAdi%'
SQL den benim PrgAdi ile bağlanan connectionları istediğimde listeyi alabiliyorum .

program_name
INFO_PrgAdi_TERMADI_9676

Dikkat etmen gereken ayı isimde termAdi nin olmaması. Ben term ID yi bilgisayar adını alarak (aynı networkde aynı isim olmayacağını düşünerek) yapıyorum.
cmkare
Üye
Mesajlar: 177
Kayıt: 23 Ağu 2010 11:29

Re: Programda Online olanlar

Mesaj gönderen cmkare »

@m_ekici hocam teşekkürler. Gönderdiğiniz kodla işimi çözdüm. Teşekkürler, iyi çalışmalar..
cmkare
Üye
Mesajlar: 177
Kayıt: 23 Ağu 2010 11:29

Re: Programda Online olanlar

Mesaj gönderen cmkare »

Son biraey sorayim hocam, aklima geldide. Programimda birsuru form var. Ben her formun bagli oldugu adoquery, adotableleri formu acip kapattigimda queryleride acip kapatiyorum. Program calistigi esnada acik kalan queryler tableler kalmissa onlari anlayabilirmiyim? Gereksizse kapatmamiz icin.
Cevapla