Firebird Saat

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Firebird Saat

Mesaj gönderen husonet »

Arkadaşlar bir türlü Firebird'e Time olarak tanımlamış olduğum alana Saat'i aktaramadım Kullandığım yöntemde

Kod: Tümünü seç

IBDataSet1.FieldByName('SAAT').AsDateTime :=FormatDateTime('tt',Now)
Fikir verirseniz sevinirim.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
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,

Kodda yazdığın FormatDateTime'ın dönen deği string olacaktır bu sebeple atama yapamazsın. (Kızar)

Onun yerine

Kod: Tümünü seç

  TimeAlan.AsDateTime := Time ;
kullan. Time function'ı CurrentTime'ı DateTime Formatında döndürür.

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Hocam Malesef gösterdiğiniz şekildede yapmıştım olmamıştı:(.

Teşekkür Ederim.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

Time değil de Now ibaresini deneyin... Olması lazım...

- Time da Now da Float tipinde değer döndürürler...

- İkisinin farkı AsDateTime dediğiniz değişkende tarih bilgisi noktadan önce, saat bilgisi noktadan sonraki kısmıdır...

- 38061,7480240741 gibi bir değer Now ile dönerken, Time ile dönen değer 0,7480240741 olacaktır...

- Dolayıdır ki Time ile dönen değerde, date (noktadan önceki basamak) 0 olduğundan anlamsız olacağından kızar...
Resim
Resim ....Resim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Muharrem Hocam Malesef sizin gösterdiğiniz şekildede yapmıştım olmamıştı:(.

Teşekkür Ederim.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
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,

Allah Allah yaw şu structure'ı bir göndersen bir de Programda bu field ne olarak görülüyor onu da bir yollasan da bakalım bakalım neymiş derdi :)

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

walla bak bende merak ettim :) muhtemelen structure da problem var, diğer ihtimal ise Field tipi. Yoksa Asdatetime := Now da desen Time da desen DB ye gomülürken date kısmı tırpanlanır. Ha tabi Dialect 3 ve Fielt tipinde Time ise

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Merhaba

Almış olduğum hata
Projeck HusoSet.exe raised exception class EConvertError with message
"0.84878531' is not a valid timestamp'. Process stopped. Use Step or run
to continue.

Kod: Tümünü seç

procedure TCariHesapAcilisIslemFrm.Button1Click(Sender: TObject);
begin
    Try
        Screen.cursor:= crhourglass;
        IbDataSet1.DisableControls;
        //Boş Kayıt Kontrolü
        IbDataSet1.First;
        While Not IbDataSet1.Eof do
        Begin
            if IbDataSet1.FieldByName('CARIKOD').IsNull Then
                IbDataSet1.Delete
            Else
            Begin
                IbDataSet1.Edit;
                IbDataSet1.FieldByName('SAAT').AsDateTime := Now;
                IbDataSet1.Post;
                IbDataSet1.Next;
            End;
        End;
        IbDataSet1.EnableControls;
        IBDataset1.ApplyUpdates;
        AnaProgFrm.IBTransaction1.CommitRetaining;
        Close;
    Finally;
        screen.cursor:=crdefault;
     End;
end;
Dialect 3 ve Field tipimde time Diğer her şey normal. Sadece Time alanına bir saat'i aktaramadım.

Teşekkür Ederim.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
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 »

Allah Allah her şey normal görünüyor. Hocam bir de (eğer büyük değil ise DB'ni bir ZIP'leyip göndersen de bir de biz denesek kendi makinamızda ?

Benim aklıma şu anda en iyi çözüm bu olacak gibime geliyor.

Enteresan bir durum. Belki de DB Corrupt mı oldu acaba?

Kolay Gelsin.
(Dialect 3 ve Field tipi Time ama yine de hata alıyoruz?
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Hocam mail adresinizi yazarsanız gönderirim.

Teşekkür Ederim.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

walla bende çok merak ettim, Yanılmıyorsam IBExpert kullanıyorsun, O table ın DDL inide bir göndersene. Birde SAAT dediğin alanı FieldList içinden silip tekrar eklesene.
kodun ile ilgilide 1-2 laf edemeden geçemiycem, Kodun düzenli hata ayıklamak yada 1 ay sonra baktığında kolayca anlaşılır

Kod: Tümünü seç

....
       IbDataSet1.EnableControls; //Bunu Finally ye koymalısın alltaki satırlar hata oluşturursa Kontrolün Disable kalır
        IBDataset1.ApplyUpdates; 
        AnaProgFrm.IBTransaction1.CommitRetaining; //Bunu anlamadım, Neden IBDataset1. nin bağlı olduğuTransaction değil ? Tavsiyem Transactionları grupla yani 2 table olabilir master ve detail bunlar 1 transationda ve oda aynı formda kullan
        Close; 
    Finally; 
        screen.cursor:=crdefault; 
     End; 
bir diğer konu Component isimlerini verirken makul ve mantıklı isimler ver "AnaProgFrm" gibi ben "FRM_AnaProg" yazmayı terçih ederim. "IBDataset1." neyi temsil ediyor ?? Ben olsam "IBD_CariHareket" derdim. "IBTransaction1." yerine "TRA_CariHareket" gibi

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Kod yazarken ileriyi düşünüyorum benim için okunabilirlik ön planda. Hocam önerilerinizi uygulayacağım. AnaProgFrm.IBTransaction1.CommitRetaining; Anaform daki Transactionu kullanma sebebim bütün datasetlerimi tek bir database bileşeninden bağladığım için bu bayağı kolay geliyor bana dataset te de bağlantımı database i işaret ettiğimde tranaction otamatik olarak dataset e ilave oluyor acaba bu yöntemim yanlışmı? Yani bütün dataset bağlantılarımda tek transaction kullanıyorum.

Hocam DDL isini sormuşsunuz

Kod: Tümünü seç

/******************************************************************************/
/****              Generated by IBExpert 16.03.2004 11:00:06               ****/
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES WIN1254;



/******************************************************************************/
/****                                Tables                                ****/
/******************************************************************************/

CREATE TABLE NAKITISLEMLER (
    ID         ID NOT NULL,
    OZELKOD    VARCHAR(4) COLLATE PXW_TURK,
    TARIH      DATE,
    SAAT       TIME,
    MAKBUZNO   VARCHAR(10) COLLATE PXW_TURK,
    CARIKOD    VARCHAR(15) COLLATE PXW_TURK,
    CARIUNVAN  VARCHAR(50) COLLATE PXW_TURK,
    ACIKLAMA   VARCHAR(80) COLLATE PXW_TURK,
    BORC       FLOAT,
    ALACAK     FLOAT,
    ISLEMTURU  VARCHAR(15) COLLATE PXW_TURK,
    ISLEM_NO   VARCHAR(15) COLLATE PXW_TURK
);





/******************************************************************************/
/****                             Primary Keys                             ****/
/******************************************************************************/

ALTER TABLE NAKITISLEMLER ADD CONSTRAINT PK_NAKITISLEMLER PRIMARY KEY (ID);


/******************************************************************************/
/****                               Indices                                ****/
/******************************************************************************/

CREATE INDEX NAKITISLEMLER_IDX1 ON NAKITISLEMLER (CARIKOD);
Çok teşekkür ederim.

İyi Çalışmalar.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

- Son bir öneride bulunayım dedim...

Kod: Tümünü seç

IBDataSet1.FieldByName('SAAT').Value := Time;
şeklinde bir dener misin ? AsDateTime deyince Value olarak DateTime bekliyordur ama field Time olduğundan fazla geliyordur, tersi durumda da field time olduğu halde AsDateTime dediğin için Value girişi eksik algılanıyordur gibi bişi düşündüm... Belki doğru belki yanlış ama denemeye değer... 8)
Resim
Resim ....Resim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Muharrem Hocam Malesef yine olmadı.

Ayrıca Freeman Hocam Alanı sildim tekrar oluşturdum vesaire hiç fayda etmedi ilginç değilmi ?

Teşekkürler.
En son husonet tarafından 16 Mar 2004 11:14 tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Tüh yaa.. Çok ilginç aynı hatayı mı veriyor bari... ?

- Arkadaşlar IB'de time alanı kullananan yok mudur ? Daha önce bu tip bir hata ile karşılaşmadınız mı acaba ?

- Ben de FireBird kurulu değil, delphiyi de IBase excluded Install ettim.. Deneme şansınız varsa ufak bir örnek yaparsanız çok merak ettim ben de... :(

- Firebird'e geçmeden Time alanıyla ilgili böyle bir referansı beğenmedim... :oops:
Resim
Resim ....Resim
Cevapla