Delphi Can

Orjinalini görmek için tıklayınız: Küsürlü alan listeleme
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Merhaba,

Sqllite Rati diye (VARCHAR) alanım var bu alanda bazı fiyatlar 1 veya 125,99 gibi küsürlü sayılarım var.
Örnek: 5 sayısına eşit veya büyük sayıları nasıl listeleye bilirim? aşağıda kod ile doğu sonuca bulamıyorum.

    
FDQ.Active := False;
    FDQ.Close;
    FDQ.SQL.Clear;
    FDQ.SQL.Add('Select * From URUNLER Where Rati>=:Rati Order By Id Asc'); // Listeleme
    FDQ.ParamByName('Rati').AsFloat := 5;
    FDQ.Prepared := True;
    FDQ.Open;
    Label1.Text :=FDQ.FieldByName('ID').AsFloat.ToString;
(20-10-2022, Saat: 12:45)Altıner Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,

Sqllite Rati diye (VARCHAR) alanım var bu alanda bazı fiyatlar 1 veya 125,99 gibi küsürlü sayılarım var.
Örnek: 5 sayısına eşit veya büyük sayıları nasıl listeleye bilirim? aşağıda kod ile  doğu sonuca bulamıyorum.

    
FDQ.Active := False;
    FDQ.Close;
    FDQ.SQL.Clear;
    FDQ.SQL.Add('Select * From URUNLER Where Rati>=:Rati Order By Id Asc'); // Listeleme
    FDQ.ParamByName('Rati').AsFloat := 5;
    FDQ.Prepared := True;
    FDQ.Open;
    Label1.Text :=FDQ.FieldByName('ID').AsFloat.ToString;

Merhabalar,

Öncelikle VarChar alanınızı float olarak dönüştürmeniz sonrasında işlemleri yapmanız gerekli.

Test etme imkanım olmadı.

Select * From URUNLER Where CAST(Rait as decimal)>=:Rati Order By Id Asc;'

Sayısasl alanlar için imkanınız var ise VarChar kullanmayın.
INT/Double/Flaot vs. kullanmanızı öneririm.


Kolay gelsin
(20-10-2022, Saat: 13:23)hi_selamlar Adlı Kullanıcıdan Alıntı: [ -> ]
(20-10-2022, Saat: 12:45)Altıner Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,

Sqllite Rati diye (VARCHAR) alanım var bu alanda bazı fiyatlar 1 veya 125,99 gibi küsürlü sayılarım var.
Örnek: 5 sayısına eşit veya büyük sayıları nasıl listeleye bilirim? aşağıda kod ile  doğu sonuca bulamıyorum.

    
FDQ.Active := False;
    FDQ.Close;
    FDQ.SQL.Clear;
    FDQ.SQL.Add('Select * From URUNLER Where Rati>=:Rati Order By Id Asc'); // Listeleme
    FDQ.ParamByName('Rati').AsFloat := 5;
    FDQ.Prepared := True;
    FDQ.Open;
    Label1.Text :=FDQ.FieldByName('ID').AsFloat.ToString;

Merhabalar,

Öncelikle VarChar alanınızı float olarak dönüştürmeniz sonrasında işlemleri yapmanız gerekli.

Test etme imkanım olmadı.

Select * From URUNLER Where CAST(Rait as decimal)>=:Rati Order By Id Asc;'

Sayısasl alanlar için imkanınız var ise VarChar kullanmayın.
INT/Double/Flaot vs. kullanmanızı öneririm.


Kolay gelsin


SQLITE database uygulamasında INTEGER, REAL, TEXT ve BLOB veri tipleri vardır. Bu yüzden ondalıklı sayılarda REAL kullanılabilir.
Teşekkür ederim.
SQLite ufak tefek gözden kaçanlar konusunda hata vermeyip, yanıltıcı sonuçlar üretiyor.
ondalıklı sayılar için Real kullanman gerekiyor. Ben tarih konusunda çok uraşmıştım YYYY-MM-DD