Bir tabloyu 2 kullanıcı aynı anda select ediyor.
1. kullanıcı bilgileri değiştirerek update ediyor.Daha sonra 2. kullanıcıda bilgileri değiştiriyor ve update ediyor.
Bu durumda 2. kullanıcı update etmeye çalıştığında tablodaki verilerin değiştirildiğini ve tabloyu baştan refresh etmesi gerektiğini bildiren bir mesaj gösterimi nasıl yapılabilir?
Aksi halde 2. kullanıcı 1. kullanıcının tüm yaptıklarını ezmiş oluyor.
Aynı anda aynı kaydı güncelleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Aynı anda aynı kaydı güncelleme
bunu kayıt anında yapmak yerine kayda ulaştığında yapsan daha iyi olmaz mı? 2. kullanıcının yazdığı bilgiler önemliyse ne olacak?
1. kullanıcı kaydı açtığında kaydı kilitle. 2. değiştirmek istediğinde bu kayıt değiştiriliyor mesajı versin.
1. kullanıcı kaydı açtığında kaydı kilitle. 2. değiştirmek istediğinde bu kayıt değiştiriliyor mesajı versin.
Re: Aynı anda aynı kaydı güncelleme
Kayda lock atıp değişikliği önlerim,fakat kulllanıcı commit attıkta sonra diğer kullanıcı update yaparsa komple ezmiş olur.
Tablo lock durumunda olmadığından da bilgiler değişmiş olur.Bu noktada kullanıcıya bilgi vermek en doğru çözüm olmaz mı?
Yada kullanıcıya tablo değişti tekrar okuyup işlem yapınız mesajı göstermek.
Tablo lock durumunda olmadığından da bilgiler değişmiş olur.Bu noktada kullanıcıya bilgi vermek en doğru çözüm olmaz mı?
Yada kullanıcıya tablo değişti tekrar okuyup işlem yapınız mesajı göstermek.
-
- Üye
- Mesajlar: 140
- Kayıt: 11 Oca 2009 10:25
Re: Aynı anda aynı kaydı güncelleme
acizane bir fikir forumda da yine yazılmıştı galiba
nolock ile verileri select yaptıgımızda kayıt kilitlenme zaten ortadan kalkıyor
MS SQL KULLANDIGINIZI BAZ ALIRSAK
KAYIT UPDATE DİYE BİR SUTUNDA DEĞİŞİKLİK TARİHİNİ VE SAATINI TUTSAK
1 KULLANICI KAYDA GİRDİ
2 KULLANICI KAYDA GİRDİ
UPDATE ETMEDEN SELECT YAPAR VE EKRANDAKİ EDİTTEKİ UPDATE TARİHİ VE SAATI SANİYEYİ KONTOROL EDER EĞER KENDİ AÇTIGI ANDAKİ İLE AYNI İSE
UPDATE ETSİN ELSE UYARI VERSİN ZAMAN AŞIMINA UĞRADI LÜTFEN ÇKIIP TEKRAR GİRİN FALAN FİLAN YANİ HANGİSİ ÖNCE UPDATE EDERSE MALI GÖTÜRSÜN
nolock ile verileri select yaptıgımızda kayıt kilitlenme zaten ortadan kalkıyor
MS SQL KULLANDIGINIZI BAZ ALIRSAK
Kod: Tümünü seç
SELECT * FROM TABLO WITH(NOLOCK) // KAYIT KİLİTLENMEDEN HER 2 KULLANICI KAYDA ULAŞIR
1 KULLANICI KAYDA GİRDİ
2 KULLANICI KAYDA GİRDİ
UPDATE ETMEDEN SELECT YAPAR VE EKRANDAKİ EDİTTEKİ UPDATE TARİHİ VE SAATI SANİYEYİ KONTOROL EDER EĞER KENDİ AÇTIGI ANDAKİ İLE AYNI İSE
UPDATE ETSİN ELSE UYARI VERSİN ZAMAN AŞIMINA UĞRADI LÜTFEN ÇKIIP TEKRAR GİRİN FALAN FİLAN YANİ HANGİSİ ÖNCE UPDATE EDERSE MALI GÖTÜRSÜN

bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar
Re: Aynı anda aynı kaydı güncelleme
Yeni bir uygulamada bu yöntem işe yarar ancak varolan bir uygulamada bütün tablolara bunu eklemek gerekecek,daha pratik bir yolu bulmak lazım.