ağda problem
-
- Üye
- Mesajlar: 26
- Kayıt: 03 Nis 2007 12:49
ağda problem
biraz garip bir olay olduğu için yeni konu açma ihtiyacı duydum
problemim şu var olan bir kaydı düzenlediğimde hiçbir sıkıntı yok fakat yeni bir kayıt eklediğimde bu kayıt terminal makinada görünmüyor .query'i kapatıp açtığımda geliyor fakat query'i kapatıp açmak istemiyorum çünkü bayağı bir kabarık veritabanım var. refresh'i denedim oda olmadı
problemim şu var olan bir kaydı düzenlediğimde hiçbir sıkıntı yok fakat yeni bir kayıt eklediğimde bu kayıt terminal makinada görünmüyor .query'i kapatıp açtığımda geliyor fakat query'i kapatıp açmak istemiyorum çünkü bayağı bir kabarık veritabanım var. refresh'i denedim oda olmadı
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: ağda problem
Ado kullanıyorsan close-open kullanmadan requery metodu ile kayıt tazeleme işini çok süratli bir biçimde güncelleyebilirsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: ağda problem
s.a.
kaydın terminal makinede görünmesi için öncelikle ana makinede başlatılan transaction ın sonlanması lazım.
ikinciside client makinedeki transaction yeniden başlatılması lazım.(bu transaction ın ayarlarına göre değişebilir ama her halukarda tabloyu refresh etmen lazım(tabi tablo kullanıyorsan))
kolay gelsin.
kaydın terminal makinede görünmesi için öncelikle ana makinede başlatılan transaction ın sonlanması lazım.
ikinciside client makinedeki transaction yeniden başlatılması lazım.(bu transaction ın ayarlarına göre değişebilir ama her halukarda tabloyu refresh etmen lazım(tabi tablo kullanıyorsan))
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
-
- Üye
- Mesajlar: 26
- Kayıt: 03 Nis 2007 12:49
Re: ağda problem
bu işin başka bir yolu yokmu yani illaki transaction ı commit mi edeceğiz
Re: ağda problem
transaction kullanıldığında commit edilmeyen işlemler aslında yapılmamış gibidir. işlemler geçici olarak yapılır ve veritabanına yansıtılmaz.
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
-
- Üye
- Mesajlar: 26
- Kayıt: 03 Nis 2007 12:49
Re: ağda problem
commitreating ile yapma olanağım varmı query'i açıp kapa madan
Re: ağda problem
aslangeri nin de dediği gibi transaction ayarlarını değiştirerek commit edilmemiş kayıtlarında diğer kullanıcılar tarafından görünmesini sağlayabilirsin.. ancak bunun içinde yine senin ordaki verileri kullanıcı makineye almak için query yi yenilemen veya tabloyu yenilemen lazım..
ancak transaction da ayarları yapıpda diğer kullanıcılarin henüz commit edilmemiş kayıtlarıda görmesi birsürü sakınca doğurur bence..
örnek olarak adam stoga bir kalem girecek ve henüz commit etmemiş.. kullanıcı o sırada bu kaydı var olarak görüp ona göre işlem yapıyor.. ama commit etmeyen diğer kullanıcı kayıttan vazgeçip rollback yaparsa ne olacak...
yani her halukarda ben commit edilmiş kayıtların görünmesinin daha doğru olacağını düşünüyorum...
biraz ozun mu oldu ne
ancak transaction da ayarları yapıpda diğer kullanıcılarin henüz commit edilmemiş kayıtlarıda görmesi birsürü sakınca doğurur bence..
örnek olarak adam stoga bir kalem girecek ve henüz commit etmemiş.. kullanıcı o sırada bu kaydı var olarak görüp ona göre işlem yapıyor.. ama commit etmeyen diğer kullanıcı kayıttan vazgeçip rollback yaparsa ne olacak...
yani her halukarda ben commit edilmiş kayıtların görünmesinin daha doğru olacağını düşünüyorum...
biraz ozun mu oldu ne
Re: ağda problem
bence senin problemin data yapısını uygun kurmaman.. yani sql kullanarak gerekli kayıtlarla işlem yaptığında close; open ; yapmak çok vakit alıcı olmayacaktır.. buralarda düzenleme yaparsan ve bunuda diğer kullanıcı makineler için eventle yakalarsan daha mantıklı olur bence..
-
- Üye
- Mesajlar: 26
- Kayıt: 03 Nis 2007 12:49
Re: ağda problem
peki ben transaction da kayıtları commit etmeden görebilmem içinde nasıl bir ayar yapmalıyım
Re: ağda problem
Veri tabanı mantığına aykırı bir yaklaşım. Yukarıdaki yazılanlardan sonra böyle bir soru geliyorsa transaction konusunu tekrar araştırmanızda fayda varibrahimkgul yazdı:peki ben transaction da kayıtları commit etmeden görebilmem içinde nasıl bir ayar yapmalıyım
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
-
- Üye
- Mesajlar: 26
- Kayıt: 03 Nis 2007 12:49
Re: ağda problem
ben bu cevap üzerine o soruyu sordumselimr yazdı:aslangeri nin de dediği gibi transaction ayarlarını değiştirerek commit edilmemiş kayıtlarında diğer kullanıcılar tarafından görünmesini sağlayabilirsin.. ancak bunun içinde yine senin ordaki verileri kullanıcı makineye almak için query yi yenilemen veya tabloyu yenilemen lazım..
ancak transaction da ayarları yapıpda diğer kullanıcılarin henüz commit edilmemiş kayıtlarıda görmesi birsürü sakınca doğurur bence..
örnek olarak adam stoga bir kalem girecek ve henüz commit etmemiş.. kullanıcı o sırada bu kaydı var olarak görüp ona göre işlem yapıyor.. ama commit etmeyen diğer kullanıcı kayıttan vazgeçip rollback yaparsa ne olacak...
yani her halukarda ben commit edilmiş kayıtların görünmesinin daha doğru olacağını düşünüyorum...
biraz ozun mu oldu ne
Re: ağda problem
benim yazdığımdan ne anlayıpta o soruyu sorduğunu ben anlamadım
transaction yalıtım (isolation) ayarları aşağıdaki seçenekleri sunar.. Bunlardan birini işinize göre kullanabilirsiniz..
- tiDirtyRead = bu sevyede commit edilmemiş değişiklikleride görebilme imkanı vardır.
(fakat bu tavsiye edilen bir durum değil.. çünkü commit edilmemiş kayıtlar commit edilmemiş olduğu için herhangi bir anda rolback yapılabilir. ve diğer kullanıcılar için tutarlı bir bilgi değildir..)
- tiReadCommitted = varsayılan durum budur.. ancak commit edildikten sonra yani değişiklikler kalıcı hale geldikten sonra değer kullanıcılar görebilir..
(en tutarlı ve karışıklıklara neden olmayacak durum bu olduğu için zaten varsayılan ayardır)
- tiRepeatebleRead = veritabanın bir kez okuma yapılmasına izin veriyor.. sonuçta diğer hareketler tarafından yapılmış sonraki değişiklikler görünmez..
transaction yalıtım (isolation) ayarları aşağıdaki seçenekleri sunar.. Bunlardan birini işinize göre kullanabilirsiniz..
- tiDirtyRead = bu sevyede commit edilmemiş değişiklikleride görebilme imkanı vardır.
(fakat bu tavsiye edilen bir durum değil.. çünkü commit edilmemiş kayıtlar commit edilmemiş olduğu için herhangi bir anda rolback yapılabilir. ve diğer kullanıcılar için tutarlı bir bilgi değildir..)
- tiReadCommitted = varsayılan durum budur.. ancak commit edildikten sonra yani değişiklikler kalıcı hale geldikten sonra değer kullanıcılar görebilir..
(en tutarlı ve karışıklıklara neden olmayacak durum bu olduğu için zaten varsayılan ayardır)
- tiRepeatebleRead = veritabanın bir kez okuma yapılmasına izin veriyor.. sonuçta diğer hareketler tarafından yapılmış sonraki değişiklikler görünmez..