İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. SDN Programlama Kafe
SDN Programlama Kafe

Sql Server hakkında bilgi verebilirmisiniz?

Vatansever21.05.20136 cevap1.931 görüntüleme
2007'den beri405 mesaj
#1
Merak ettğim şey bir ağ ortamında aynı database'yi kullanan iki bilgisayar arasında bilgi girişi silme ve update işlemlerinde çakışma olmazmı olmuyorsa nasıl bunun mantığı nedir?
Mesela Sql Server yüklü bir sunucu bilgisayar var birde Bilgisayar1 ve Bilgisayar2 var bu iki bilgisayarda Sql Server database kullannan aynı programdan yüklü ve iki bilgisayar aynı anda sunucudaki database'deki aynı bilgi üzerinde değişiklik yapmaya kalkarsa problem çıkmazmı? Birde program yazarken ben formload'da databasedeki bilgileri çekiyorum programıma ve birdaha değişiklik olmadığı sürece database'ye ulaşıp bilgileri güncellemiyorum gerekte yok ama aynı database'yi kullanan iki bilgisayar varsa durum çok karmaşık görünüyor bana Sql Server'de bu sorunlar çıkarmı çıkmazmı nasıl aşılır bilgi verebilirmisiniz?
Cevaplar
Misafir
#2
normalde oracleda o tabloya veri girişi yapıldığında o alanı kitler veri girişini engeller taki commit işlemi yapılana kadar
Vatansever Konuyu açan
2007'den beri405 mesaj
#3
SDN Okuru dedi: ↑
normalde oracleda o tabloya veri girişi yapıldığında o alanı kitler veri girişini engeller taki commit işlemi yapılana kadar
işe yarar bir yöntem gibi görünmüyor ben formload da yüklediğim bilgiyi görüyorum bir başka bilgisayar değişiklik yaptıysa bunu göremiyorum işlem yapılan alanı kilitlese ne olur. Şöyle düşün ben bir alanda update yapıyorum tam o anda başka bilgisayar o alanı değiştiriyor ve o alan kilitlenmiş o bilgisayar bilgiyi değiştiriyor ve bende bunu hemen göremiyorum ve ardından ben update yapınca diğer bilgisayardan girilmiş bilgide gitmiş olacak alanı kilitlemek mantıklı bir çözüm değil. Herhangi bir bilgisayardan bir bilgi değiştirildiğinde benim bunu anında görebilmem lazım değilmi?
2010'den beri546 mesaj
#4
Vatansever dedi: ↑
işe yarar bir yöntem gibi görünmüyor ben formload da yüklediğim bilgiyi görüyorum bir başka bilgisayar değişiklik yaptıysa bunu göremiyorum işlem yapılan alanı kilitlese ne olur. Şöyle düşün ben bir alanda update yapıyorum tam o anda başka bilgisayar o alanı değiştiriyor ve o alan kilitlenmiş o bilgisayar bilgiyi değiştiriyor ve bende bunu hemen göremiyorum ve ardından ben update yapınca diğer bilgisayardan girilmiş bilgide gitmiş olacak alanı kilitlemek mantıklı bir çözüm değil. Herhangi bir bilgisayardan bir bilgi değiştirildiğinde benim bunu anında görebilmem lazım değilmi?
triggerlar falan var araştır istersen.
Vatansever Konuyu açan
2007'den beri405 mesaj
#5
trigger (tetikleyici) falan bunlarıda araştırdım ama hala anlayamadım çakışma nasıl önleniyor
2010'den beri546 mesaj
#6
Vatansever dedi: ↑
trigger (tetikleyici) falan bunlarıda araştırdım ama hala anlayamadım çakışma nasıl önleniyor
Neyi anlamaya çalıştığını anlamadım :D


Triggerla tabloda değişiklik yapıldığında log tutturabilirsin. Kimin değişiklik yaptığını yada hangi değişikliği yaptığını tutabilirsin. başka yöntem bilmiyorum.

senin bahsettiğin olay da çakışma değil zaten. birisi veri girer diğeri o veriyi değiştirir yetkisi varsa. bu çakışma değildir. sen de araya girip bu değişikliklerin kaydını tutacaksın.
2006'den beri324 mesaj
#7
Form load içerisinde çektiğin veriler güncellenmişse sen bunu göremezsin bu kesin. Veriyi tekrar çekmen lazım.
İkinci aşamada iki bilgisayar aynı veriyi update ederse en son edenin bilgileri görünür. Hata vermez.

Çözmenin yolu yaptığın yazılımdadır ve birden çok fazladır.
Form load olayında mesela sürekli db yi kontrol edip değişen varmı diye bakarsın. Varsa hemen güncellersin. Bu sistemin biraz canına okur tabi ama istediği şeyi yapmış olursun

Aynı verinin update olayında ise ne istediğini bilmen lazım. Birisi güncelleyince başkası güncellemesin, aynı anda iki kişi update edemesin gibi. Bunları da yine yazdığın kodlarla belirlersin. Ne istiyorsan o olur yani.

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.