Merhaba,
Otomatik sayı tarzındaki her kayıt girildiğinde birer birer artan sıra numaralarının tutulduğu bir tablodaki bu sayı değerini alıp bunu bir başka tabloya veri girerken sıra numarası olarak kullanmam gerekiyor.
Ancak birden fazla kullanıcı tarafından erişilen bir yapıda bulunduğum için iyi bir (Ya da kötü mü demeliyim
) zamanlama ile iki kullanıcı birbirine çok çok yakın zamanlarda sql sorgularını yürüttüklerinde iki kullanıcının da aynı sayı numarasını alması ve içeride aynı sira numarasına sahip çift kayıt bulunması olasılığı mevcut.
Böyle bir durumu önleyebilmek için Internet'te biraz araştırma yaptım ve
şeklinde bir yapıdan bahsedildiğini gördüm.
Anladığım kadarıyla "set implicit_transactions on" ile başlayan komut dizesi "set implicit_transactions off" komutunu görene dek arasında kalan sql kodlarında kullanılmakta olan table lara erişimi geçici olarak diğer kullanıcılara kapatıyor. Böylece benzersiz olması gereken bir değer birden fazla kullanıcıya tahsis edilmemiş oluyor.
Sorum da bu doğrultuda zaten; yazdığım bu iki kod satırı benim istediğim işi mi yapar? ve bu komutun alması gereken başka ön ekler varmıdır?
İşin özü; Aşağıdaki kodu çalıştırdığımda Sira değerini aynı anda bir başka kullanıcının da almasını önlemiş olur muyum?
Not: Lütfen dene ve gör demeyiniz, iki kullanıcının aynı anda (Muhtemelen aynı milisaniye içinde) veri girmesini ummadan bunun çalışıp çalışmayacağını bilemeyeceğim 
Otomatik sayı tarzındaki her kayıt girildiğinde birer birer artan sıra numaralarının tutulduğu bir tablodaki bu sayı değerini alıp bunu bir başka tabloya veri girerken sıra numarası olarak kullanmam gerekiyor.
Ancak birden fazla kullanıcı tarafından erişilen bir yapıda bulunduğum için iyi bir (Ya da kötü mü demeliyim
Böyle bir durumu önleyebilmek için Internet'te biraz araştırma yaptım ve
Kod:
set implicit_transactions on
.
.
.
.
.
set implicit_transactions off
Anladığım kadarıyla "set implicit_transactions on" ile başlayan komut dizesi "set implicit_transactions off" komutunu görene dek arasında kalan sql kodlarında kullanılmakta olan table lara erişimi geçici olarak diğer kullanıcılara kapatıyor. Böylece benzersiz olması gereken bir değer birden fazla kullanıcıya tahsis edilmemiş oluyor.
Sorum da bu doğrultuda zaten; yazdığım bu iki kod satırı benim istediğim işi mi yapar? ve bu komutun alması gereken başka ön ekler varmıdır?
İşin özü; Aşağıdaki kodu çalıştırdığımda Sira değerini aynı anda bir başka kullanıcının da almasını önlemiş olur muyum?
Kod:
set implicit_transactions on
Update TbSiraNo Set Sira = Sira + 1
Set transaction isolation level read uncommitted
Select Sira From TbSiraNo 'Bu satırı VBA ile yürütüp Sira değişkenini öğreneceğim (Mesela Sira = 95 olsun).
Insert Into TbHareketler values (95,'Domates',125) '95, yukarıda öğrendiğimiz Sıra No, 125 ise Domatesin miktarı
IF @@TRANCOUNT > 0 COMMIT TRAN
set implicit_transactions off