online sorgu çalıştıramıyorum

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
gyildizak
Üye
Mesajlar: 10
Kayıt: 06 Oca 2005 04:18
Konum: ESKİŞEHİR

online sorgu çalıştıramıyorum

Mesaj gönderen gyildizak »

S.A.

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 :cry:
yardımcı olabilecek tüm arkadaşlardan Allah şimdiden razı olsun.
iyi çalışmalar.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Serverdan veriyi yazdıktan sonra commit ediyormusun (yada commitretaining),
ve Transaction parametreleri Read Committed seklinde ayarlı mı?
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
gyildizak
Üye
Mesajlar: 10
Kayıt: 06 Oca 2005 04:18
Konum: ESKİŞEHİR

Mesaj gönderen gyildizak »

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.

Kod: Tümünü seç

 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.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

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.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
gyildizak
Üye
Mesajlar: 10
Kayıt: 06 Oca 2005 04:18
Konum: ESKİŞEHİR

Mesaj gönderen gyildizak »

yardımlarınız için gerçekten çok teşekkür ederim İnşallah benim de sizlere yardımcı olabileceğim konular olur.

iyi çalışmalar dilerim.
Cevapla