Terminal makinaların veriyi anında görmesi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Terminal makinaların veriyi anında görmesi

Mesaj gönderen ertline »

S.A. arkadaşlar,
Bu konuda daha öncede sordum ve forumu çok inceledim.Fakat tam net açıklamalar bulamadım.Kendimce çözümler bulmaya çalıştım belli ölçülerde bişeyler yaptım ama tam çözemedim.
Bu konuyla alakalı Bookmark kullanılıyor mu bilmiyorum ben
Post tan sonra dataseti Close -Open Yapıyorum ve normal olarak ilk kayda konumlanıyor, locate ile işlem yaptığı kayda konumlandırıyorum.
Bu arada Transaction da Read-Comitted konumunda(Bu şart mı?).
Bu şekilde yapıyorum ama tam istediğim gibi çalışmıyor.

Bu konu ile alakalı Bookmark, ibevent gibi işlemler yapılabilir diye forumda geçiyor ama kullanımını net olarak anlatılmıyor(işlemin kullanımı).
Bu konuda çalışmış arkadaşlar eminim ki vardır bi yardım ederseniz sevinirim.

hayırlı çalışmalar...
"Bilginin Doruğuna Hep Birlikte..."
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

Mesaj gönderen meron06 »

kardeş bu linke bi bak belki bi fikir verir sana .kullandığın vt yi yazsan dah aiyi olurdu bu arada.
viewtopic.php?t=8900&highlight=ibevent
heskin35
Üye
Mesajlar: 132
Kayıt: 30 Haz 2004 09:48

Mesaj gönderen heskin35 »

close open işlemi yapıyor isen
buna göre insert işlemlerinde tabloya table.last komutu verebilir;
update işleminde ise bookmark ile konlandırma yapılır.
O da
update işlemine başlanırken tanımlanan bookmarka konum gönderilir;

Kod: Tümünü seç

uses db;
.
..
procedure degis.click..
var 
konum:Tbookmark;
begin
 konum:=table.getbookmark;
.
..
//kayıt işlemi sonrası
table.post
table.commitretaining;
table.close;
table.open
table.gotobookmark(konum);// kayıta konumlanır.
table.freebookmark(konum); bookmark hafızadan atılır.
end;
gibi bi işlem ile konumlandırmayı yapabilirsin.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ertline yazdı:.....
bişeyler yaptım ama tam çözemedim. ......
......
yapıyorum ama tam istediğim gibi çalışmıyor.
.......
istediğin gibi çalışmayan kısımları neler onları söylersen daha bi yardımcı olabiliriz.

@meron06 nin verdiği linkte ve aşağıdaki linklerde triger-sp-events üçlüsü hakkında bilgi var.

viewtopic.php?t=5295&highlight=events
viewtopic.php?t=3625&highlight=events

Read Commited olması (sanırım dbye connect olduktan sonra) diğer transaction lar tarafından commit edilenleride oku anlamında.

Yukarda dediğim gibi sorunun tam kaynağı hakkında daha detaylı bilgi verirsen sevinirim.

Kolay Gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar Ertline,

Bir terminalden biri bir veri girdiğinde diğer terminallerdekilerin de bundan haberdar olup kendi datalarını refresh etmek istiyorsanız, Firebird'deki Event'ler sizin için biçilmiş kaftandır.

Bu konuları araştırın. Seminer 7'de ben bir örnek verdim orada nasıl kullanacağınıza dair bilgi var ayrıca örnek programları da yazıp koydum.

Ordan detaylı ve gerçek kullanımını görebilirsiniz. Link veremeyeceğim yerini ben de hatırlamıyorum, arama ile bulabilirsiniz sanırım :)

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Arkadaşlar, veri değişikliği olduğunda bütün client'ların refresh olması denyo bir yöntem değil mi yaw?

Düşünün binlerce client hababam refresh yapıyor.

Buna niye gerek duyulduğunu anlamıyorum. Mantıklı bir insan bütün veriyi göstermez zaten. Üzerinde çalışılanı gösterir.
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

Kuri_YJ Seminer7 yi bulamadım.
Bir link yada örnek olabilecek yazım gösteirirseniz memnun olacağım.
Bir de şunu söylemek istiyorum.Refresh yapıldıktan sonra ilk kayda konumlanma yapıyor bunu işlem yaptığımız kayıta nasıl konumlandırırız.
Bookmark dışında başka yolla yapılabiliyor mu?
"Bilginin Doruğuna Hep Birlikte..."
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Mege senin sitede seminerler vardı değil mi adresi neydi?

Ayrıca, Refresh olayını bir daha düşün. Küçük bir firmada yapıyorsan olayları, tamam olur da çok daha fazla kullanıcı ile yapıyorsan bir daha düşün derim. Sistemi gereksiz yormanın bir anlamı olmaz.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

Ben refresh olayı şunun için yapmak istiyorum.Şimdi 3 bilgisayardan veri girişi yapılıyor.Bir bilgisayardan girilen verinin diğer 2 bilgisayardan da anında görünmesini istiyorum.Bunun içinde sanırım bu şart(Close-Open).

Birde Close-open Yaptıktan sonra işlemi yaptığım kayıtta kalmasını istiyorum.
"Bilginin Doruğuna Hep Birlikte..."
heskin35
Üye
Mesajlar: 132
Kayıt: 30 Haz 2004 09:48

Mesaj gönderen heskin35 »

ertline yazdı:Ben refresh olayı şunun için yapmak istiyorum.Şimdi 3 bilgisayardan veri girişi yapılıyor.Bir bilgisayardan girilen verinin diğer 2 bilgisayardan da anında görünmesini istiyorum.Bunun içinde sanırım bu şart(Close-Open).

Birde Close-open Yaptıktan sonra işlemi yaptığım kayıtta kalmasını istiyorum.
O zaman şu şekilde izah etmeye çalışayım üstad.
Close/open yaptığındada commitretaining işlemi yapılacaktır. Yani close open işlemi yerine transactiona commit retaining işlemi yapar isen buffer daki bilgiler veritabanına yazılır. Diğer kullanıcılarda ilgili bilgileri görürler.
Konumlanma durumu için ise bahsettiğim gibi close open işleminin hemen öncesinde konumlu satırı bookmarka atarsın ve open işleminden sonra tekrar dataset veya table 'i bookmark ile ilgili konuma konumlandırırsın. Eğer dersen bookmark kullanmak istemiyorum diye o zaman yine close open öncesinde hemen konumu bi değişkene alırsın (mesela kayıtın Id sini veya autoinc bi alan var ise onu) sonrasında ise locate komutu ile konumlanırsın.
Cevapla