MS-SQL kayit kilitleme

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Burhan_ast
Üye
Mesajlar: 143
Kayıt: 15 Haz 2003 07:33
Konum: Almaty, Kazakhstan

MS-SQL kayit kilitleme

Mesaj gönderen Burhan_ast » 04 Mar 2009 07:46

Merhabalar,

Arkadaslar MS-SQL 2000 de kayit kilitlemek istiyorum, X kullanicisi M-120 kodlu stogu degistir dedigi anda bu kaydi klitlemek ve baska kullanicilar bu kaydi degistirmek istedilerinde Kayitin kilitli oldugunu tespit edip kayit kilitlenmistir demek istiyorum, kayiti degistiren kaydet veya vazgec dedigi andada bu kayittaki kiliti serbest birakmak istiyorum,

Burhan Cakmak

Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 02:10
Konum: İstanbul & Gebze Karışık

Re: MS-SQL kayit kilitleme

Mesaj gönderen conari » 04 Mar 2009 09:31

stok kartında kilit diye bir alan tanımla.
true false olarak.
post delete vs işleminden önce (before) select ile kodun durumuna bak. True ise işlem yaptırma false ise devam ettir.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim

Burhan_ast
Üye
Mesajlar: 143
Kayıt: 15 Haz 2003 07:33
Konum: Almaty, Kazakhstan

Re: MS-SQL kayit kilitleme

Mesaj gönderen Burhan_ast » 04 Mar 2009 09:48

Merhaba

Evet bu sekilde bir cozum mumkun ama bu her halukarda sorunlu calisan bir yontem sistemdeki kullanici sayisi 20 veya uzeri oldugunu dusundugumde bu sorun veriyor ve muhakkak cakismalar mumkun oluyor, aslinda MS-SQL serverin bu konuda kendisinin bir kayit kilitleme sistemi var ben bunu kullanmak istiyorum bu konuda yardimci olabilimisiniz,

Burhan

Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 03:44
Konum: İstanbul

Re: MS-SQL kayit kilitleme

Mesaj gönderen gkimirti » 04 Mar 2009 05:44

Ms-Sql de mutlaka bir transaction başlatma komutu vardır.
bir transaction açık iken başka bir kullanıcı o kayıt üzerinde değişiklik yapmak isteyince vt ler farklı tepkiler veriyor, mesela firebird de record locked gibi bir mesaj gelirken postgresql de set edilen timeout süresince bekletiliyor, bekleme sonunda timeout hatası alınıyor. Ama mssql de transaction açık iken değişiklik yapılmak istenirse nasıl bir tepki alınır bilemiyorum, aslında önemli bir konu , hepimize lazım olabilir.
ÜŞENME,ERTELEME,VAZGEÇME
Oğlum Yusuf'un yeni oyunu :mrgreen: Google Play üzerinde
Linear Minimalist Puzzle ve Smash Drift
👉 https://goo.gl/8S31tD 👈
👉 http://bit.ly/2OJos6P 👈

Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 03:44
Konum: İstanbul

Re: MS-SQL kayit kilitleme

Mesaj gönderen gkimirti » 04 Mar 2009 05:52

Ado ile bağlanıyorsanız
viewtopic.php?f=19&t=9834
bunu bir okuyun.
ÜŞENME,ERTELEME,VAZGEÇME
Oğlum Yusuf'un yeni oyunu :mrgreen: Google Play üzerinde
Linear Minimalist Puzzle ve Smash Drift
👉 https://goo.gl/8S31tD 👈
👉 http://bit.ly/2OJos6P 👈

Kullanıcı avatarı
tuna
Üye
Mesajlar: 297
Kayıt: 07 Tem 2008 03:39
Konum: İstanbul

Re: MS-SQL kayit kilitleme

Mesaj gönderen tuna » 06 Mar 2009 05:45

Ms sql de çok belalı bir iş bu.
Ben daha önce kayıtlar kilitlenmesin diye bir soru sormuştum. Çünkü transaction başlayınca tarnsaction'a giren tabloya diğer kullanıcıların hiçbirisi erişemiyor. Time out oluyordu. Bi inceleyin.

viewtopic.php?f=27&t=24964

Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 11:07
Konum: İstanbul
İletişim:

Re: MS-SQL kayit kilitleme

Mesaj gönderen Kuri_YJ » 23 Mar 2009 11:30

Selamlar,

Kullandığınız SQL Cümlesinde WITH NOLOCK, WITH ... gibi yardımcı transaction mode'ları var. Bunları inceleyin. İşinize yarayacaktır. Olayın mantığını algılamanız daha doğru olur.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/

Cevapla