Merhaba arkadaşlar,
interbase/firebird konusunda oldukça yeni sayılırım daha önce yazdığım programlarda oracle ve/veya sql veri tabanı kullanıyordum yapmaya çalıştığım son uygulamamda delphi7 ve interbase kullanmaya çalışıyorum, IBX bileşenleri ile erişim ve sorgular çalıştırıyorum. şu andaki uygulamam üretim hattından online veri toplamak üzerine (tam olarak bir üretim hattındaki pressler çalıştığında her üretim yaptığında bir sinyal alıyorum.)
gelen verileri tabloya yazıyorum sorun yok bu aşamada. ama clientlar için hazırladığım uygulamada sorgu srgu çalıştırdığımda tüm kayıtları getirmiyor yani update yapıyor sadece bir önceki güne kadar sorgu veri döndürüyor.
aynı anda veri yazarken (server da sadece ) clientlardan online olarak sorgu yapmak istiyorum ama başaramadım
yardımcı olabilecek tüm arkadaşlardan Allah şimdiden razı olsun.
iyi çalışmalar.
merhaba tekrar,
aslında serverda çalışan programın sadece bir kısmı bu veri yazdığım..
direk table a post ediyorum verileri daha hızlı olur diye düşündüm.
with IBTable4 do begin
DecodeTime(now,hour,min,sec,msec);
if (8<=hour) and (hour<16) then begin
shift:=1;
end;
if (16<=hour) and (hour<23) then begin
shift:=2;
end;
if (0<=hour) and (hour<8) then begin
shift:=3;
end;
insert;
FieldByName('shift').Value :=shift;
FieldByName('press_no').Value := '2';
FieldByName('state').Value := 'çalışmıyor';
FieldByName('time_begin').Value :=f4;
FieldByName('time_end').Value :=DateTimeToStr(now);
f3:=DateTimeToStr(now);
post;
end;
state2:=0;
birde Transaction parametreleri Read Committed şeklinde ayarlımı onukontrol edeyim.
bu arada yazmış olduğum tüm kodu gönderebilirim ilgilene arkadaşlar var ise.
selamlar.
Table da kullansanız bunu bir transaction a baglıyorsunuz.
siz post dediginiz halde bu fiziksel olarak vt ye anında yansımıyor.
eger commit ederseniz tablo kapanıyor ve yapılan islemler yazılıyor.
tabloyu yada programı kapatırsanız Transaction ın default actionı TaCommit seklinde oldugu icin (default olarak bu geliyor) yine vt ye islenmis oluyor.
siz her post isleminde bunun kaydedilmesini isterseniz AfterPost olayında Commit yada CommitRetaining den birisini kullanın.
Commit islem sonucu transaction baglantısını kopardıgı icin genelde CommitRetaining tercih ediliyor. Ayrıca bu konuda ufak bir arama ile bu dediklemin cogunu forumda bulabilirdiniz.