Aynı anda aynı tabloya birden fazla update

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
alyamus
Üye
Mesajlar: 44
Kayıt: 09 Ara 2011 09:09

Aynı anda aynı tabloya birden fazla update

Mesaj gönderen alyamus »

Arkadaşlar yazdığımız programda aynı anda 2 3 kişi aynı tabloda farklı id lerdeki yerileri güncelliyorlar fakat sql server ilk gönderileni kaydediyor diğerleri işlem görmüyor araştırdım dead sql deniliyormus buna nasıl çöze bilirim facebook falan bu gibi büyük yerler nasıl yapıyor
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Aynı anda aynı tabloya birden fazla update

Mesaj gönderen Kuri_YJ »

Selamlar,

Locking veya Isolation Level diye bahsedilen konuda sıkıntı yaşıyorsunuz. Facebook'u bırakın, 3-5 elemanı olan muhasebe şirketleri, 2-3 terminali olan marketler bunu nasıl yapıyor?

Bu konuda programınızda sorun var demektir. Programdaki çalışma mantığınızı anlatın. Sıkıntı programınızda.

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

Re: Aynı anda aynı tabloya birden fazla update

Mesaj gönderen m_yaprakci »

Kullandığınız ADO bileşeninin özelliklerinden (AdoTable, AdoQuery vs) LockType : ltOptimistic, CursorType : ctKeyset ve CursorLocation : clUseClient (bu çok önemli) yaparsanız sorun olmaz.
Özellikle CursorLocation özelliği clUseServer olursa aynı anda işlem yapılan (ağda vs ortak çalışılan) veritabanlarında bu tür problemler oluşur. (ilk olarak kayda odaklanan cihazın IDsi gecerli olur)
Bununla birlikte veritabanı tablolarınızda unique bir alanı (autoincrement olması mantıklı olur. ID vs isimil bir alan) PrimaryKey olarak tanımlamanız da şarttır.
Cevapla