ibdataset çok kullanıcı kayıt sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mstsargin
Üye
Mesajlar: 12
Kayıt: 16 May 2009 04:21

ibdataset çok kullanıcı kayıt sorunu

Mesaj gönderen mstsargin »

s.a
herkese iyi çalışmalar.programımda ibdatabase,ibtransaction ve ibdataset var.ibdatasetin afterpostunda ibtransaction.commitretaining komutu var.programım çok kullanıcılı.sorunum ise iki bilgisayarda aynı anda kayıt giriyorsa bilgisayarlardan birisi kayıtı post edince diğer bilgisayarın ekranına diğerinin girdiği kayıt otomatik olarak geliyor.ibevents ile olayları kontrol ediyorum ordaki komutum ibdataset.close ibdataset.open. oraya ibdataset.refresh dediğimde bu sorun olmuyor.o zamanda mesela 2.bilgisayarın kaydettiği bir kaydı 1.bilgisayardan programdan çıkıp tekrar girmeden göremiyorum.
yardımlarınız için şimdiden teşekkürler.
arkantos_55
Üye
Mesajlar: 25
Kayıt: 26 Nis 2011 03:18

Re: ibdataset çok kullanıcı kayıt sorunu

Mesaj gönderen arkantos_55 »

Program sadece ilk açılıştamı select sorgusunu yeniliyor sanırım sorunun öyle birşey arada atıyorum dakika da bir sorguyu yenilet görünmesi llazım. refresh te sorun verebilir belki ama select sorgusunu tekrar aktif edersen sorun kalkacaktır diye düşünüyorum. birde aynı kayıt içerisinde iki kişi aynı anda değişiklik yapması veri kaybına neden olabailir o yüzden boolean bir alanlala o anda kullanıcı kayıtın içindemi diye kontrol ettirip diğer kişilerin erişimini engellemen hata olasılığını sıfıra indirir.
mstsargin
Üye
Mesajlar: 12
Kayıt: 16 May 2009 04:21

Re: ibdataset çok kullanıcı kayıt sorunu

Mesaj gönderen mstsargin »

select sorgusunu yenilettiğim halde kullanıcı diğer kullanıcının oluşturduğu kayıta giremiyor.bu arada iki kullanıcı aynı kayıtı yapmyor. onun kontrolünü yapıyorum.
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: ibdataset çok kullanıcı kayıt sorunu

Mesaj gönderen emin_as »

Firebird un meşhur mga özelligi nedeniyle bu başına geliyor. Her transaction kendi kaydının kopyasını yaratır ve kapanana kadar onu muhafaza eder. Bu tür durumlarda transaction ı açıp kapatmalı veya fibplus-ibdac gibi çift transaction kullanan bileşen setine geçmelisin.

Veritabanıyla çalışırken şu noktalara dikkat etmek gerekir.
- Sadece gerekli olan kayıtları seçip, onları listeleyin-gösterin.
- Veritabanını boş yere açık tutmayın işiniz bitince hemen kapatın.
- Düzenleme gerekmiyorsa edit-delete özellikleri olan datasetleri degil, sadece okunabilir kayıt döndüren sql bileşenlerini kullanın.
- Ara ara transactionları açıp kapatın (her saniye degil, ama 3-4 dakikada bir olabilir. Aksi halde veritabanı sunucuna gereksiz yere yüklenmiş olursunuz.)


Firebird'un mga özelliği: http://www.firebirdfaq.org/faq44/
mstsargin
Üye
Mesajlar: 12
Kayıt: 16 May 2009 04:21

Re: ibdataset çok kullanıcı kayıt sorunu

Mesaj gönderen mstsargin »

Firebird un meşhur mga özelligi nedeniyle bu başına geliyor. Her transaction kendi kaydının kopyasını yaratır ve kapanana kadar onu muhafaza eder. Bu tür durumlarda transaction ı açıp kapatmalı veya fibplus-ibdac gibi çift transaction kullanan bileşen setine geçmelisin
hocam fibplus componentini kullanıyorum update transactionı ayrı bir transaction seçiyorum ama netice aynı. acaba clientdataset bileşeninimi kullanmalıyım ?
Cevapla