Delphi XE4 dbGo ADO query nesnesi ile, MsSql 2008 R2 üzerinde bazı tablolara insert ve update yapıyorum. Tüm işlemleri, connection nesnesinin BeginTransact metodunu başlattıktan sonra yapıyorum ve tüm işlemler hatasız tamamlandıysa, connection nesnesinin CommitTrans metodunu çağırıyorum.
connection.BeginTrans çağrısından sonra, bir tabloya (mesela adı Tablo1 olsun) insert/update işlemleri yaparken; aynı anda Management Studio 'dan
Kod: Tümünü seç
select * from Tablo1
İlgilenen arkadaşlara şimdiden teşekkürler ...
Düzenleme:
Ms Sql Server 2008 R2
Bir A programı ADO üzerinden bağlanıyor ve connection.BeginTrans yapıyor. Daha sonra insert into Tablo1 .... yapıyor.
Bir B kullanıcısı Management Studio üzerinden bağlanıyor ve select * from Tablo1 yapıyor. Bu sorgu sonucu, A programını bekliyor ve A programı CommitTrans yapmadan, Management Studio sonuç göstermiyor. Benim istediğim bu sorgu hemen dönsün ve boş tablo göstersin. Çünki, A programı BeginTrans çağırdığı sırada Tablo1 tablosu boştu (Ve henüz ne olacağı belli değil çünki belki de A programı RollbackTrans çağıracak).
Düzenleme:
Arkadaşlar, Google dan bulabildiğim kadarıyla repeteable read, snapshot veya serializable isolation level den birini ve/veya optimistic lock kullanmam gerekiyormuş. Bazı testler yaptıktan sonra, sonucu yazacağım.