Lock Record

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Lock Record

Mesaj gönderen ahmet_sinav »

aktif row uzerinde diger kullanicilarin herhangi bir islem yapmamasi icin bir sql clause var mi?
select * from tbl_ with lock seklinde bir komut var fakat bu sadece commit olana kadar calisiyor. ben aktif kayit secili durumda ise islem yapilmasini (delete,insert,update) engellemek istiyorum. bunu nasil gerceklestirebilirim? Arama yaptim bir compenent onerisi haricinde herhangibir bir sonuc bulamadim.
Saygilar;
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

vt tarafında istediğiniz şekilde nasıl yapılacağı hakkında bilgi veremeyeceğim ama delphi tarafında eğer fb kullanıyor ve ib bileşenleri ile bağlanıyorsanız ilgili transaction u çift tıklayarak buradaki özelliklerinden kullanıcıların sadece okuma veya okuyup yazma gibi ayarlarını yapabilirsiniz.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
veliadiguzel
Üye
Mesajlar: 197
Kayıt: 09 Tem 2003 02:11
Konum: Gebze/Kocaeli
İletişim:

Mesaj gönderen veliadiguzel »

S.A.

bu konuda aklıma ilk gelen kayıt bazında kilitleme icin dosyaya bir alan eklemek ve kayıt select oldugun da o alana Mesela "aktif" veya "1" gibi bir bilgi post etmek ve gene secerken bu alanı kontrol edip eğer "aktif veya "1" ise kayıt kullanılıyor gibi bir "hata" mesajı vermek.

boyle bir konu sanırım forumda da gecmisti


A.E.O.
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

Cevaplar için teşekkürler.
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

Eğer Fibplus kullanıyorsan dataset in BeforeEdit ve BeforeDelete olaylarına

Try
Table.LockRecord(True);
except
Raise Exception.Create('Bu kayıt kilitli kardeş....');
end;

kodunu yaz
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

yok fibplus kullanmıyorum.
ibx bileşenleri kullanıyorum.
query'de
select * from tablo_adi with lock
şeklinde seçince transaction commitretain olana kadar kitli kalıyor.
kilidi kaldırmak için transaction.commitretaining demek gerekiyor.
buraya kadar prolem yok.
fakat kullanıcılar yapmak istedikleri işlemleri iptal etmek isteyebilirler. bu durumda nasıl bir yol izlemeliyim.
şöyleki
seçim esnasında
'select * from tablo where no='+edit.text+' with lock'
diyorum. bu seçimi editin on exit eventına yazdım.
farklı bir kayda konumlanmaya çalışırken eğer transactionı commitretain etmez isem kayıt transactionı commitretain edene kadar kilitli kalıyor. tabi başka kullanıcı da üzerinde işlem yapılmamasına rağmen o kayda gelince 'kayıt kilitli' mesajı alıyor.
Saygılar;
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

lock emriyle gezerek okuduysan locklı kalması gayet doğal.
vay efendim bu adamın daha önceki locklarını bulup kaldırayım ben diyemez.

kullandığın component ve firebird sürümünde rollbackretaining varsa onu kullan, yoksa, queryini close ederek dene.
o da olmuyorsa,
hiçbir değişiklik olmadıysa normal rollback yaparak,
değişen tablolar varsa commit[retaining] yaparak transactionu bitir/tazele.

locklar nasıl yapılır, hangi durumlarda kalkar gibi bilgiler dökmanlarda gayet detaylı açıklanıyor.

soru odaklı öğrenmek okuyup sindirmekten daha kolay geliyor biliyorum ama, bunu sürekli yapmaya kalkmanın cami önünde mendil açmaya dönüşeceğini anlayabiliyor olmanız lazım. bilgisayarcılık akıllı adam işidir,
akıllı adam da, bırakın hazır çözümleri ve imkanları araştırıp öğrenmeyi,
kendisi bir çözüm yaratabilen kişidir.
Firebird Foundation Member #208
http://www.firebirdsql.org
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Terminator yazdı:...
soru odaklı öğrenmek okuyup sindirmekten daha kolay geliyor biliyorum ama, bunu sürekli yapmaya kalkmanın cami önünde mendil açmaya dönüşeceğini anlayabiliyor olmanız lazım. bilgisayarcılık akıllı adam işidir,
akıllı adam da, bırakın hazır çözümleri ve imkanları araştırıp öğrenmeyi,
kendisi bir çözüm yaratabilen kişidir.
Hocam isabetli söylüyorsunuz da bildiklerimizle bilmediklerimiz arasındaki fark günbegün artmaktayken en iyi çözüm bu işin tabletlerinin bir an önce çıkmasıdır :wink: Bu teknolojik çağ da buna imkân verir tahmin ediyorum :roll:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

rsimsek yazdı:
Terminator yazdı:...
soru odaklı öğrenmek okuyup sindirmekten daha kolay geliyor biliyorum ama, bunu sürekli yapmaya kalkmanın cami önünde mendil açmaya dönüşeceğini anlayabiliyor olmanız lazım. bilgisayarcılık akıllı adam işidir,
akıllı adam da, bırakın hazır çözümleri ve imkanları araştırıp öğrenmeyi,
kendisi bir çözüm yaratabilen kişidir.
Hocam isabetli söylüyorsunuz da bildiklerimizle bilmediklerimiz arasındaki fark günbegün artmaktayken en iyi çözüm bu işin tabletlerinin bir an önce çıkmasıdır :wink: Bu teknolojik çağ da buna imkân verir tahmin ediyorum :roll:
artan bildiklerimizle bilmediklerimiz arasında fark değil, endişe.
tablet olayı halledilir, asıl sorun 250lilik kullanabileceklerin 750lilik satınalabilenlerle olan haksız rekabeti olacak.. ;)
Firebird Foundation Member #208
http://www.firebirdsql.org
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Terminator yazdı:...artan bildiklerimizle bilmediklerimiz arasında fark değil, endişe...
Bilinmezlik deryasına daldıkça ne kadar az bildiğimizi dolaysıyla bildiklerimizle bilmediklerimiz arasındaki farkı daha iyi anlıyoruz. Yani "Bildiğim tek şey hiç bir şey bilmediğimdir/Socrates" e gidiyor :cry:
Terminator yazdı:...
tablet olayı halledilir, asıl sorun 250lilik kullanabileceklerin 750lilik satınalabilenlerle olan haksız rekabeti olacak.. ;)
Rekabet her zaman vardır zaten. Önemli olan her iki tarafa da hitap etmek ve ortalamayı tutturup dengeyi sağlayabilmekte.. :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

rsimsek yazdı:
Terminator yazdı:...artan bildiklerimizle bilmediklerimiz arasında fark değil, endişe...
Bilinmezlik deryasına daldıkça ne kadar az bildiğimizi dolaysıyla bildiklerimizle bilmediklerimiz arasındaki farkı daha iyi anlıyoruz. Yani "Bildiğim tek şey hiç bir şey bilmediğimdir/Socrates" e gidiyor :cry:
Terminator yazdı:...
tablet olayı halledilir, asıl sorun 250lilik kullanabileceklerin 750lilik satınalabilenlerle olan haksız rekabeti olacak.. ;)
Rekabet her zaman vardır zaten. Önemli olan her iki tarafa da hitap etmek ve ortalamayı tutturup dengeyi sağlayabilmekte.. :wink:
örneğimin nedeni, 750mg tablet kullananlar nedeniyle o zaman da, daha fazla bilenlerin gerisinde kalıyor olmandan endişe edip yeni bir çözüm önermenden endişelenmemdi. ;)
tablet çıksa, insanoğlu yine işin daha kolayını isteyecektir.
eski çağları düşünün.. okuyan yazan elle gösterilir, kitaplar elle yazılır, saklıdır, bilgi dağıtılmaz güçtür, insanlar mum ışığında yaşar vs vs..
bugün internette ne ararsan var, 2 tık ötede...
acaba diyorum, biliyor olmanın verdiği haz, öğrenme sürecinin hazzından daha mı yüksek,
ya da, ne kadar çok neyi bilmeye başlarsak o haz, acıya dönüşmeye başlar..
Firebird Foundation Member #208
http://www.firebirdsql.org
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kimbilir :?
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla