Ben bir IB veritabanını oluşturdum ve bu veritabanı ile mesela veritabanı üzerinden mesajlaşma tarzı bir program yapmak istiyorum. Formun üzerine bir adet IBDatabase,
1 adet IBTransaction, 1 adet IBQuery, 1 adet IBUpdateSQL v.s dbcontrol nesnelerini koydum. IBDatabase deki database kısmına veritabanımın adını bağladım. IBTransactionuda veritabanına bağladım. query ve updatesql de tamam ancak bir yeri atladım oda IBTransaction. Bunun ayarlamasını nasıl yapıcam? Yani yeni bir kayıt girilince ağdaki bir başka şahıs serverde değişen bu bilgiyi nasıl görebilir? ve client te değişen bir bilgi serverda nasıl görülür yani program nasıl olurda interaktif (karşılıklı veri alışverişi) yapabilir? Tabi mail programını örnek olarak verdim başka bişey de düşünebiliriz.
Mesela programda afterpost olayına commitretaining yaptık ama diğer kullanıcılar değişikliği nasıl görecekler? Ben istiyorum ki tıpkı mail yollamak gibi birine mesaj attığımda diğer kullanıcı da veritabanına bağlı olduğundan kayıtların sonuna yeni bir kayıt eklendiğini görsün. (otomatik refresh yapsın)
Interbasein interaktif kullanımı (commit retaining)
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
şu mantıkla yapabilirsin.
ilk once IBTransactionun izolasyon düzeyini ReadCommited'e ayarla.
(IBTransaction'a çift tıklayarak)
sonra veritabanında tabloların after post olaylarına birer trigger ekle
triggerin kodunda şu satır yer alsın.
post_event 'KayitPostEdildi';
bu komut gdb ye bağlı bütün clientlara bu mesajı gönderir.
IBEvents bileşeniylede bu mesajı yakalar ve gerekli işlemi yaparsın.
procedure TForm1.IBEvents1EventAlert(Sender: TObject; EventName: String;
EventCount: Integer; var CancelAlerts: Boolean);
begin
if EventName = 'KayitPostEdildi' Then
ibQuery.Refresh;
end;
ilk once IBTransactionun izolasyon düzeyini ReadCommited'e ayarla.
(IBTransaction'a çift tıklayarak)
sonra veritabanında tabloların after post olaylarına birer trigger ekle
triggerin kodunda şu satır yer alsın.
post_event 'KayitPostEdildi';
bu komut gdb ye bağlı bütün clientlara bu mesajı gönderir.
IBEvents bileşeniylede bu mesajı yakalar ve gerekli işlemi yaparsın.
procedure TForm1.IBEvents1EventAlert(Sender: TObject; EventName: String;
EventCount: Integer; var CancelAlerts: Boolean);
begin
if EventName = 'KayitPostEdildi' Then
ibQuery.Refresh;
end;