Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Doğru sonuca ulaşma
#1
Selamlar,

Sqlite veri tabanında, DERINLIK alanı REAL 11,3 gibi küsürlü sayılar oluyor. Alttaki iki kodun mantığı aynı fakat sonuçlar neden faklı çıkıyor?


Bu kodlarla doğu sonuç alıyorum:
 
   sFDQ.Active := False;
    sFDQ.Close;
    sFDQ.SQL.Clear;
    sFDQ.SQL.Add('Select * From Havuz Where Tarih=: Tarih and Alerter=: Aler');
    sFDQ.ParamByName('Tarih').AsDate := Date;
    sFDQ.ParamByName('Aler').AsString := 'Alerter No';
    sFDQ.Prepared := True;
    sFDQ.Open;
    while Not sFDQ.Eof do
    begin
      Ml := Trunc(StrToFloat(sFDQ.FieldByName('Ml').AsString)) >= sMl;
      Derinlik := Trunc(StrToFloat(sFDQ.FieldByName('Derinlik').AsString)) <= sDerinlik;

      if (Derinlik) and (Ml) then
      begin
        MemoAlerter.Lines.Add('Ml: ' + sFDQ.FieldByName('Ml').AsString);
        MemoAlerter.Lines.Add(StringOfChar('-', 104));
      end;
      sFDQ.Next;
    end;


 Bu kodlarda genelde eksik veri alıyorum:
 
   sFDQ.Active := False;
    sFDQ.Close;
    sFDQ.SQL.Clear;
    sFDQ.SQL.Add('Select * From Havuz Where Tarih=: Tarih and Derinlik<=: Deri and Ml>=: Ml and Alerter=: Aler');
    sFDQ.ParamByName('Tarih').AsDate := Date;
    sFDQ.ParamByName('Deri').AsFloat := sDerinlik;
    sFDQ.ParamByName('Ml').AsFloat := sMl;
    sFDQ.ParamByName('Aler').AsString := 'Alerter No'; (DÜZETTTİM)
    sFDQ.Prepared := True;
    sFDQ.Open;
    while Not sFDQ.Eof do
    begin
      MemoAlerter.Lines.Add('Ml: ' + sFDQ.FieldByName('Ml').AsString);
      MemoAlerter.Lines.Add(StringOfChar('-', 104));
      sFDQ.Next;
    end;
Cevapla
#2
İlk göze çarpan "Aler" parametresi ilk sql ile ikinci sql arasında farklı / ters yazılı olabilir mi?

Alerter No
No Alerter
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#3
(05-06-2024, Saat: 22:57)mrmarman Adlı Kullanıcıdan Alıntı: İlk göze çarpan "Aler" parametresi ilk sql ile ikinci sql arasında farklı / ters yazılı olabilir mi?

Alerter No
No Alerter





Alerter No İlgili bir durum değil. AsFloat ilgili bir sorun olduğunu düşünüyorum.
Alerter No kısmını 2 gün önce fark ettim ve düzelttim. Yedeklemeden alıp buraya eklerken Alerter No kısmı atlamışım.
Cevapla
#4
Doğru dediğin yerde sayıyı trunc ile integer yuvarlayarak işlem yapıyorsun. Hatalı dediğin yerde eğer sayılar virgülü ise ki öyle görünüyor. Bu nedenle aynı sonucu vermez.
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla
#5
(06-06-2024, Saat: 00:31)Mete Adlı Kullanıcıdan Alıntı:
(05-06-2024, Saat: 22:57)mrmarman Adlı Kullanıcıdan Alıntı: İlk göze çarpan "Aler" parametresi ilk sql ile ikinci sql arasında farklı / ters yazılı olabilir mi?

Alerter No
No Alerter





Alerter No İlgili bir durum değil. AsFloat ilgili bir sorun olduğunu düşünüyorum.
Alerter No kısmını 2 gün önce fark ettim ve düzelttim. Yedeklemeden alıp buraya eklerken Alerter No kısmı atlamışım.



Bu şekilde doğru sonuçları alabildim.
   
 sFDQ.Active := False;
    sFDQ.Close;
    sFDQ.SQL.Clear;
    sFDQ.SQL.Add('Select * From Havuz Where Tarih=:Tarih and Alerter=:Aler');
    sFDQ.ParamByName('Tarih').AsDate := Date;
    sFDQ.ParamByName('Aler').AsString := 'Alerter No';
    sFDQ.Prepared := True;
    sFDQ.Open;
    while Not sFDQ.Eof do
    begin
      cMl := Trunc(StrToFloat(sFDQ.FieldByName('Ml').AsString));
      cDerinlik := Trunc(StrToFloat(sFDQ.FieldByName('Derinlik').AsString));
      if (cMl >= sMl) and (cDerinlik <= sDerinlik) then
      begin
        MemoAlerter.Lines.Add('Ml: ' + sFDQ.FieldByName('Ml').AsString);
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  server programinda hani veritabani dogru olur. sadikacar60 4 1.177 30-01-2024, Saat: 21:06
Son Yorum: sadikacar60
  Edit içindeki tarihin doğru olup olmadığını kontrol etmek? hasansavci 2 1.446 17-10-2023, Saat: 03:35
Son Yorum: mcuyan
  Form create hangisi daha doğru tuna 17 9.266 21-02-2021, Saat: 22:26
Son Yorum: uparlayan
  Fastreport Masterdata column aşağı doğru yanyana sıralama klavye 6 4.289 15-10-2020, Saat: 16:42
Son Yorum: serdar



Konuyu Okuyanlar: 1 Ziyaretçi