Sayfayı Yazdır | Pencereyi Kapat

TclProDateEdit ile veritabanına kayıt

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1051
Tarih: 29 Kasım 2025 Saat 22:52
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: TclProDateEdit ile veritabanına kayıt
Mesajı Yazan: cerenn
Konu: TclProDateEdit ile veritabanına kayıt
Mesaj Tarihi: 03 Temmuz 2025 Saat 15:51
void HarcamaKaydet;
var
    girilenTutar: Real;
    girilenTarih: String;
    secilenKategoriID: Integer;
    sqlSorgu: String;
{
    try
        
        if((guncelTutarEdit == nil) || (guncelTarihEdit == nil) || (guncelKategoriBtn == nil) ){
            ShowMessage('Form elemanları bulunamadı!');
            Exit;
        }
       
       
        try
            girilenTutar = StrToFloat(guncelTutarEdit.Text);
        except
            ShowMessage('Lütfen geçerli bir tutar giriniz!');
            Exit;
        }
        
        girilenTarih =guncelTarihEdit.Text;
        //girilenTarih=guncelTarihEdit.DateStr;
        secilenKategoriID = guncelKategoriBtn.ClTagInt;
        
       
        if (girilenTutar <= 0) {
            ShowMessage('Tutar sıfırdan büyük olmalıdır!');
            Exit;
        }
        
        if (secilenKategoriID <= 0) {
            ShowMessage('Lütfen bir kategori seçiniz!');
            Exit;
        }
        
        if (girilenTarih == '') {
            ShowMessage('Lütfen bir tarih seçiniz!');
            Exit;
        }
        
        Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'ncyyn.db3', '');
        
        sqlSorgu = 'INSERT INTO harcamalar (kategori_id, tutar, tarih) VALUES (' + 
                   IntToStr(secilenKategoriID) + ', ' + 
                   FloatToStr(girilenTutar) + ', ' + 
                   QuotedStr(girilenTarih) + ')';
        
        Qry = Clomosy.DBSQLiteQueryWith(sqlSorgu);
        Qry.OpenOrExecute;
        Qry.Free;
        
        ShowMessage('Harcama kaydedildi!');
      
       -
        tumHarcamalariYukle;
        
    except
        ShowMessage('Harcama kaydetme hatası: ' + LastExceptionClassName + ' - ' + LastExceptionMessage);
    }
}Merhaba,böyle bir fonksiyonum var .guncelTutarEdit,guncelTarihEdit ,guncelKategoriBtn global değiskenler.Başka bir fonksiyonda nesneleri oluşturuyorum.guncelTarihEdit TclProDateEdit ile tanımladım.Tarih seçmeme rağmen Lütfen bir tarih seçiniz!hatası alıyorum.Yorum satırındaki şekilde denediğimde de SQL hatası alıyorum.Bir dönüşüm yapmam gerek sanırım ama,bilemedim.Yardımcı olursanız çok sevinirim.



Cevaplar:
Mesajı Yazan: BilalCndn
Mesaj Tarihi: 04 Temmuz 2025 Saat 18:11
Merhaba Ceren,

Harcamalar tablonda bulunan tarih alanının date veya datetime formatında olduğunu varsayarak ilerliyorum. Öncelikle girilenTarih değişkenini TclDateTime olarak kullanmanı tavsiye ederim. Atama kısmında .text yerine .DateStr kullanman daha doğru olur. Sqlite içerisinde date tipinde alanlar YYYY-MM-DD formatında veri beklerler. Fakat TclProDateEdit DD.MM.YYYY tipinde bir veri verir. Bu durumda gelen veriyi formatlayarak istenilen formata getirmen gerekir. Bunun için aşağıdaki sayfalardan yardım alarak problemi kolaylıkla çözebileceğini düşünüyorum.

https://www.docs.clomosy.com/FormatDateTime" rel="nofollow - https://www.docs.clomosy.com/FormatDateTime
https://www.docs.clomosy.com/DecodeDate" rel="nofollow - https://www.docs.clomosy.com/DecodeDate

İyi çalışmalar dilerim.


-------------
Bilal Candan

Atiker Yazılım Veri İşlem A.Ş.
Software and Artificial Intelligence Development Specialist

[email protected]



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net