FB de tarih

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ı
mikser
Üye
Mesajlar: 120
Kayıt: 30 Haz 2003 09:54
Konum: Ankara

FB de tarih

Mesaj gönderen mikser »

F.B. 1.5

Kod: Tümünü seç

CREATE TABLE TABLE1 (
    ALAN1              DM_S_INT NOT NULL
    ALAN2              DM_INT NOT NULL     
    ALAN3              DM_INT NOT NULL     
    TARIH              DM_DATE DEFAULT   'Now'       
    TARIH1             DM_DATE    
);
TARIH alanının default değeri güncel tarih. TARIH1 in defaultunu guncel tarihden 4 gün sonrası olacak sekilde nasıl yapabilirim.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

varsayılan degerleri beforeinsert triggerinda yazarsanız daha rahat edersiniz.
eger ibx bilesenleri kullanıyorsanız ve dataset1.insert; tarzı ile insert yapıyorsanız tablodaki default degerler bi isinize yaramayacak.
ÜŞENME,ERTELEME,VAZGEÇME
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Gökmen abinin dediği gibi , defoult değerleri delphi tarafında vermek daha mantıklı , şöyle ki;

Önce tablonuzu şu mantıkta düzenleyin

Kod: Tümünü seç

CREATE TABLE TABLE1 (
    ALAN1              DM_S_INT NOT NULL
    ALAN2              DM_INT NOT NULL     
    ALAN3              DM_INT NOT NULL     
    TARIH              DM_DATE          
    TARIH1            computed by (TARIH+4)   
);
ve Delphi de ilgili datasetin after insertinde de

Kod: Tümünü seç

Dataset.FieldByName('TARIH').Value := Now;   
demeni yeterli...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Delphi tarafında degil de Firebird tarafında trigger icinde bu deger verilirse daha mantıklı olur,
zira delphi tarafında bir sekilde unutulabiliniyor, baska bir formda aynı dataset eklenebiliyor, o zaman datasetin afterinsertine yada nereye ,se yazılan kodları da tekrar yazmak gerekiyor.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
mikser
Üye
Mesajlar: 120
Kayıt: 30 Haz 2003 09:54
Konum: Ankara

Mesaj gönderen mikser »

gkimirti hocam dediginiz dogru. benim dusuncem bu vt yi kullanan program dışında baska bir programla acildiginda (ibexpert gibi mesela) yine bu tür kontrolleri yapilmiş olması. vt tarafında da kontrol olur delphi tarafında da bu mesele degil.

oguzozturk74 hocam computed by ile yapilan bu tarih işlemi işe yarar mı bilemiyorum. Her post ettiginde tarihi yine 4 gün sonrasina yazarsa o olmaz. Sadece yeni kayıtta bu olay olacak. kullanıcı isterse bu tarihi degistirebilecek. aradaki farkı isterse 6 gün yapabilecek.

ben vt kısmında birşey yapmadan direk program kısmında 4 gün sonrasini getirttim. vt den böyle birşey mümkün mü onu bilemedim.

cevap yazan herkese tesekkürler.
kolay gelsin.
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

bence bunu o zamat procedürle yapman lazım
bi taen giriş parametresi tanımlayıp depih tarafında artması gereken gun sayırını yollarsın procedurde ona gopre tarihi artırır.
şimdi cafedeyim ama eve gidince bi örnek yazmaya çalışıtım
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Kod: Tümünü seç

dateadd(day,4,getdate());
gibi birşey vardı ama böyle birşeydi galiba tam hatırlamıyorum ama bir fikir verir.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Evet benim dediğimde , her post oluşunda Tarih alanıda otomatik değişecektir.
Kullanıcının değiştirmesini istediğiniz için böyle bir çözüm uygun olmaz,
bu durumda trigger daha uygun görüküyor.
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Mesaj gönderen cemarik »

Bence de Table ın BeforeInsert triggerinda ve eğer Update de de kullanacaksan BeforeUpdate triggerında kolaylıkla ve birden fazla yerle oynamadan(Delphi vs.) halledebilirsin.
Cevapla