yazdığımız programı client olarak birden fazla çalıştırmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 140
- Kayıt: 11 Oca 2009 10:25
yazdığımız programı client olarak birden fazla çalıştırmak
mssql server 2005 ile yazdığım programı
client olarak başka bir yerde de çalışmasını isityorum
aynı anda bilgi girişi yapılacak bunun mantığı nedir nasıl yapmalıyız püf noktaları nelerdir çünkü aynı anda aynı tablolara bilgi işlenecek
client olarak başka bir yerde de çalışmasını isityorum
aynı anda bilgi girişi yapılacak bunun mantığı nedir nasıl yapmalıyız püf noktaları nelerdir çünkü aynı anda aynı tablolara bilgi işlenecek
bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar
Re: yazdığımız programı client olarak birden fazla çalıştırm
programının database bağlantısını dışardan değişir hale getirmelisin. arada adsl varsa NAT işlemide gerekecektir.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
-
- Üye
- Mesajlar: 140
- Kayıt: 11 Oca 2009 10:25
Re: yazdığımız programı client olarak birden fazla çalıştırm
hayır hocam programı 3 4 kullanıcı local ağda kullandırmak istiyorum yani yandaki bilgisayardaki kullanıcı da evrak işleyecek ana bilgisayar da
bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: yazdığımız programı client olarak birden fazla çalıştırm
Burada programın SQL Server yüklü makinada olması ya da başka bir makinada olmasının bir esprisi yoktur. Mantık olarak sunucu program olan SQL Server'dır, buraya kayıt yapan, sorgulayan programınız ise istemci programdır. Size düşen programınızda bazı noktalara dikkat ederek program geliştirmek o kadar (Çok aşırı miktarda kaydı birden bire açmamak, belirli aralıklarla verileri güncellemek v.b.). Kısacası SQL Server'a bağlantı kurup çalışan programlar istemciden ibarettir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 140
- Kayıt: 11 Oca 2009 10:25
Re: yazdığımız programı client olarak birden fazla çalıştırm
hocam aynı ağda aynı exe ile sunucu adı ve bilgilerini girdirerek bağlanıyorum o aşamada sorunum yok
aslında bilgi eksikliği şurda şöyle sorayım
2 kullanıcı aynı anda bağlanıp müşteriler tablosuna aynı anda kayıt girebilirmi sql server o aşamada kendisimi sırayı kontrol eder
1 kullanıcı aynı tabloda insert durumunda iken öbürü ne yapar
1 kullanıcı rapor çekerken öbür kullanıcının durumu nice olur gibi aslında sorun burda
teşekkürler
aslında bilgi eksikliği şurda şöyle sorayım
2 kullanıcı aynı anda bağlanıp müşteriler tablosuna aynı anda kayıt girebilirmi sql server o aşamada kendisimi sırayı kontrol eder
1 kullanıcı aynı tabloda insert durumunda iken öbürü ne yapar
1 kullanıcı rapor çekerken öbür kullanıcının durumu nice olur gibi aslında sorun burda
teşekkürler
bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar
-
- Üye
- Mesajlar: 140
- Kayıt: 11 Oca 2009 10:25
Re: yazdığımız programı client olarak birden fazla çalıştırm
yani kayıt aşamasında akışı nasıl kontrol ederiz sonra tabloyu bozmayalım yada telafisi olmayan haller olmasın bunun çalışma şekli yoksa program aynı program
bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: yazdığımız programı client olarak birden fazla çalıştırm
Bu olaylar (aynı tabloya kayıt) nedeniyle sorun yaşamazsınız. En kötü olasılıkla aynı tabloyu geçtik, aynı kayıt satırını düzeltme anında işlemlerden birisi çalışır diğer kayıt işlemi gerçekleşmez. Yeni kayıt aşamasını "ADOTable.Append; .... .... .... ADOTable.Post;" şeklinde append ve post bir click içinde kodlanmışsa transaction başlatmanız daha sağlıklı kayıt yapmanızı sağlayacaktır.Burada dikkat edilmesi gereken nokta, BeginTrans ile başlatılan işlemden sonra hangi tabloda işlem yapıldıysa, CommitTrans veya RollbackTrans çalıştırılana kadar o tablolara erişim diğer kullanıcılar tarafından sağlanamaz.
Kod: Tümünü seç
try
ADOConnection.BeginTrans;
ADOTable.Append;//veya ADOTable.Edit;
....
....
....
ADOTable.Post;
ADOConnection.CommitTrans;//işlem anında hata oluşmazsa değişiklikler uygulanır
except
ADOConnection.RollbackTrans;//işlem anında hata çıkarsa bütün değişiklikler geri alınır, hiç kayıt olmamış gibi devam eder
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 140
- Kayıt: 11 Oca 2009 10:25
Re: yazdığımız programı client olarak birden fazla çalıştırm
teşekkürler hocam
yani diyorsunuz ki aynı satır üzerinde olmadığı sürece isterse 10 kişi aynı anda kayıt girsin problem olmaz onun için herhangi bir komplo teorisi yazmaya gerek yok bu aynı şekilde kayıtlar üzerinde gezerkende geçerli değilmi hocam yani istisnayi bir durum yok nede olsa network üzerinde çalışıyor belki atladığım bir nokta vardır bunun haricinde bir durum söz konusu olabilirmi bozulma yada çalışma anında hataya sebep verebilecek bir durum vs
yani diyorsunuz ki aynı satır üzerinde olmadığı sürece isterse 10 kişi aynı anda kayıt girsin problem olmaz onun için herhangi bir komplo teorisi yazmaya gerek yok bu aynı şekilde kayıtlar üzerinde gezerkende geçerli değilmi hocam yani istisnayi bir durum yok nede olsa network üzerinde çalışıyor belki atladığım bir nokta vardır bunun haricinde bir durum söz konusu olabilirmi bozulma yada çalışma anında hataya sebep verebilecek bir durum vs
bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar
Re: yazdığımız programı client olarak birden fazla çalıştırm
merhaba,
pek üstünde durmadım bu yüzden tam olarak cevap olmayacak size ama şu konuyu dikkat etsen gerisini günümüzün vt leri zaten yapıyor.
birden fazla kullanıcı çalışma anında aynı kayıt üzerinde işlem yapmaya başladığında kaydı ilk açan malı götürsün. diğerlerine uyarı mesajı ver. kayıt şu an kullanılıyor sen sonra gel diye. çünkü gerekli ayarlar yapılmamışsa dataset kaydı çektiğinde her iki kullanıcı işlem yapıyor ve son kaydet diyen kullanıcının verilerini kaydediyor. haliyle ilk kaydı değiştiren kişi kontrol ettiğinde şaşkın şaşkın ekrana bakıyor yazdıklarım nereye gitti diye
kolay gelsin
pek üstünde durmadım bu yüzden tam olarak cevap olmayacak size ama şu konuyu dikkat etsen gerisini günümüzün vt leri zaten yapıyor.
birden fazla kullanıcı çalışma anında aynı kayıt üzerinde işlem yapmaya başladığında kaydı ilk açan malı götürsün. diğerlerine uyarı mesajı ver. kayıt şu an kullanılıyor sen sonra gel diye. çünkü gerekli ayarlar yapılmamışsa dataset kaydı çektiğinde her iki kullanıcı işlem yapıyor ve son kaydet diyen kullanıcının verilerini kaydediyor. haliyle ilk kaydı değiştiren kişi kontrol ettiğinde şaşkın şaşkın ekrana bakıyor yazdıklarım nereye gitti diye
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
-
- Üye
- Mesajlar: 140
- Kayıt: 11 Oca 2009 10:25
Re: yazdığımız programı client olarak birden fazla çalıştırm
evet hocam şaban akman hocamın delphi dünyasındaki cevaplarınıda buldum bu konu ile ilgili tüm selectlerde with nolock kullanacağım sizin önerinizde suyun başına ilk önce kim geçerse o içsin suyu ama o satırın insert durumunda olup olmadığını nasıl öğrenebilirim hangi event işimi görür acizane
bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar