Programda Online olanlar
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Programda Online olanlar
Merhabalar, Programım ağ üzerinde çalışıyor.
Program Kaç kişide açık olduğunu kimlerin o anda programı kullandığını nasıl anlayabilirim?
Program Kaç kişide açık olduğunu kimlerin o anda programı kullandığını nasıl anlayabilirim?
- mustafasoy
- Üye
- Mesajlar: 154
- Kayıt: 02 Ağu 2013 05:00
- Konum: istanbul
- İletişim:
Re: Programda Online olanlar
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'
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.
Nasıl ki Soru sorarak öğrendiyseniz , öğrendiklerinizi cevap vererek öğretiniz.
Re: Programda Online olanlar
firebird için
Kod: Tümünü seç
select
*
from MON$ATTACHMENTS
Re: Programda Online olanlar
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..
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Programda Online olanlar
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.
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.
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Programda Online olanlar
veritabanı kullanıyorsan sql cumlesinden faydalanabilirsin
SELECT loginame,hostname,program_name,net_address, * FROM sys.sysprocesses with(nolock)
where ......
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
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
Re: Programda Online olanlar
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..
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..
Re: Programda Online olanlar
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.
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.
Re: Programda Online olanlar
Veritabanı olarak ne kullandığını belirtebilir misin
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
-
- Üye
- Mesajlar: 37
- Kayıt: 13 Oca 2016 10:53
Re: Programda Online olanlar
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
Re: Programda Online olanlar
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.
Re: Programda Online olanlar
Veri tabani olarak mssql kullaniyorum.
Re: Programda Online olanlar
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.
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.
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%'
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.
Re: Programda Online olanlar
@m_ekici hocam teşekkürler. Gönderdiğiniz kodla işimi çözdüm. Teşekkürler, iyi çalışmalar..
Re: Programda Online olanlar
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.