Fire Bird Kayıt Kilitleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
eyalin
Üye
Mesajlar: 126
Kayıt: 09 May 2005 08:08

Fire Bird Kayıt Kilitleme

Mesaj gönderen eyalin »

Merhaba Arkadaşlar

Fire bird'e kaydı kilitleyerek , kullanıcıya "Bu kayıt ....... tarafından kullanılıyor" mesajını verme işlemini nasıl yapabiliriz? :duvar:

Teşekkürler.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

firebird lock seklinde forumda arayarak kısa zamanda bulabilirdiniz.
viewtopic.php?t=1770&highlight=firebird+lock

programcının yaklasımına baglı olarak kayıt kilitleme ile ilgili daha baska ornekler olabilir, linkteki yazımı okuyunca goreceksiniz, cok basit bir islem ile yapılabilmekte...
iyi calısmalar
ÜŞENME,ERTELEME,VAZGEÇME
eyalin
Üye
Mesajlar: 126
Kayıt: 09 May 2005 08:08

Mesaj gönderen eyalin »

Teşekkürler

Ben başka şeyler yazıp aratmıştım.

Sağolun...
Kullanıcı avatarı
tsamim
Üye
Mesajlar: 76
Kayıt: 19 Ağu 2004 03:08
Konum: izmir

Mesaj gönderen tsamim »

Merhaba arkadaşlar;

Ben başka bir veritabanı ve dilden delhi'ye geçiş yaptım.Açıkçası ilk geçtiğim zaman dikkatimi çeken firebird'de kayıt bazında (record) kilitlemenin sorun olduğu idi ama muhakkak yapılıyor diye düşündüm şimdiye kadar araştırmalarımın sonunda ise manuel olarak takib edebilmenin dışında firebird'in bize bir olanak sunmadığı üzerine bu konuda yanılmış olmayı diliyorum aslında.Çünkü manuel olarak takib etmeyi düşününce projemin geldiği şu aşamada çok kötü bir durum çünkü
oldukça fazla vaktimi alıcak (vaktin olmadığı yerde).

ARtı manuel olarak takib etmenin bir çok problemide beraberinde getireceğini düşünüyorum.Bilgisayarın kitlenmesi,elektrik kesintileri yanlış kullanım vs.

Bence çok kullanıcılı program yazmak firebirdde oldukça zorlaşıyor bu şartlarda ve çok kullanıcılı program yazıyorsanız kayıt bazında kiltlemenin olmazsa olmaz bir şart olduğunu düşünüyorum.

Ben özellikle bu güzel sitenin oluşumunda ve devamında büyük emekleri olan admin arkadaşlardan bu konuda (bu konudaki daha önce yazılanların sonuca ulaşamadığım için) eğer varsa daha net ve ayrıntılı mümkünse ib bileşenleri ile kayıt bazında kilitlemeyi açmaları hatta bu bağlamda firebird'de devam edip etmemenin tartışmaya açmalarını rica ediyorum.

Tabiiki bu arada firebird ile çok kullanıcılı program geliştiren arkadaşlarında bize bu konuda biraz ışık tutmalarını rica ediyorum.Çünkü hakkatten bence önemli bir sorun çok kullanıcılı program yazacak arkadaşlar için.

Çok teşekkürler herkese iyi çalışmalar dilerim.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

tablom adlı bir tablonuzu kayıt kilitleyerek nasıl update edeceginizi soyle tarif edeyim.

duzenleme yapılacak forma bir ibdataset koyup bunu ibdatabase ve bir transaction a baglarsınız.
datasetin select sqline
select * from tablom where kayitno=:updateedilecekkayıtno for update with lock

yazıp gerekli insert,update,delete sql lerini olusturacaksınız.
simdi bir ibquery icine select * from tablom yazıp bunu bir dbgride baglayıp
bir de popup menu koyup dbgride baglayıp
icine Bu kayıtı duzenle yazarsanız ve
bunun olayınca duzenleme yapılacak formu acıp
ibdataseti de su sekilde acarsanız
ibdataset.params[0].asinteger:=kayitno;
(bu kayıt no ibqueryden alınan kayıtno)

sanırım dediginiz yapılır.
iyi calısmalar
kolay gelsin

viewtopic.php?t=1770&highlight=firebird+lock
bunu da bir gozden gecirebilirsiniz.
ÜŞENME,ERTELEME,VAZGEÇME
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Peki hangi kaydın kilitlendiğini nasıl öğreniriz?
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

dbaware bilesenler ile edit moda yada silmeye calıstıgınızda kayıt kilitlenmis tarzında bir hata alıyorsunuz. eger hangi kayıtın kilitlendigi cok onemli ise sırayla tum kayıtlar edit ve cancel yapılır hata veren isaretlenir...
Ama pek efektif degil bence..
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
tsamim
Üye
Mesajlar: 76
Kayıt: 19 Ağu 2004 03:08
Konum: izmir

Mesaj gönderen tsamim »

Sayın gkirmiti ;

Verdiğiniz cevap için çok teşşekkürler firebird konusunda umutsuzluğa düşmüştüm bana umut oldunuz.Hemen deniyeceğim sizin önerinizi ancak bu aşamda bir sorum daha olacak ben formlarımda ıbupdatesql kullandım
zannedersem sizin metodu ordada kullanabilirim ancak ibupdatesql ile ibdataset arasında ne gibi bir fark var çözemedim arama yaptırdım bulamadım size yazmadan önce.with lock'ı kullanabilmek için ibdatasete çevirmem gerekmez umarım ilginiz için tekrar teşekkürler.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

merhaba ,
ibdataset ile ibupdateSql arasında fark yok gibi şöyleki dikkat ederseniz IbDataset te UPDATE , INSERt , SELECt ve DELETE sql cümlelerini belirtebileceğimiz özellikler mevcut ama bir ibQuery ile sadece tek bir SQL cümlesi belirtebiliyoruz bazı durumlarda bizim ibQuery ile kayıt üzerinde işlem yapmamız gerekir o gibi durumlarda ibQuery e ibupdateSQL yi bağlayarak ibdataset gibi davranmasını sağlayabiliriz.
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
tsamim
Üye
Mesajlar: 76
Kayıt: 19 Ağu 2004 03:08
Konum: izmir

Mesaj gönderen tsamim »

Merhaba ;

Şimdi bende onu inceliyordum ibupdatesql kullanımı bana daha kolay geldi onu kullandım çünkü edit yapacağım tabloyu queryl'le açıyor ve sorguluyor ve aradaki bağlantı sayesinde updatesql ile editliyordum ancak bu with lock olayı herhalde ibupdate sql ile olmıyacak gibi görünüyor çünkü ibupdate sql 'de select ifadesi yok eğer querynin sql'ni with lock koyarsam zannedersem sorguladığı bütün kayıtları lock edicek oysaki benim istediğim o değil sadece tek kayıt lock edebilmek galiba yandı gülüm keten helva ben şimdi bütün updatesql kullandığım yerlerde ibdatasete dönmem gerekecek sanırım eğer sayın gkimirtiden daha ferahlatıcı bir cevap gelmezse :(
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

ibdataset = ibupdatesql+ibquery

benim ifademde 1 adet ibquery ve bir adet ibdataset kullanarak yapabilirsiniz demistim.
aynı sekilde 2 adet ibquery ve 1 adet updatesql kullanarak yapabilirsiniz.

Not: ibupdatesql de select cumlesi olmaz,insert,update ve delete sql ler, bu bagladıgınız ibquery nin select sql i kullanılarak elde edilir.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
tsamim
Üye
Mesajlar: 76
Kayıt: 19 Ağu 2004 03:08
Konum: izmir

Mesaj gönderen tsamim »

Tekrar merhaba ;

Ben bir önceki msg'ımda updatesql'de select olmadığını farkettiğimi belirtmiştim zaten o yüzden ibdatasete çevirmem gerkiyor sanırım ancak sizin söylediğiniz 2 ibquery 1 update sql seçeneği benim şu andaki yapıma daha uygun gibi gözüküyor değiştirmek için ancak şu an nasıl olacağını pek kestiremedim doğrusu tekar ilginiz için teşekkürler.
Cevapla