Merhaba,
Öncelikle;
- "with" ifadesini zorunda kalmadıkça kullanmayın. Öyle bir noktaya gelir ki ciddi karışıklıklara yol açabilir. Kod okumayı zorlaştırır (neyin neye atandığını anlamak için ekstra çaba gerekebilir).
- Yazdığınız kod yeni seviye blok (begin..end, try..finally, vb) içine girmedikçe aynı seviyede yazın.
- Boş satır bırakmamaya özen gösterin.
- SQL komutlarını kendiniz "Quote" etmeye çalışmayın. Parametre tanımlayıp değerleri parametre kullanarak sorguya verin. SQL komutları böylece çok daha kolay okunur hale gelecektir.
Sorunuza gelince, kullandığınız veritabanı bağlantı bileşenine göre aşağıdaki kod içinde "Params[0].AsDateTime" satırında düzenleme yapmanız gerekebilir.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
Module.adoDovizTablo.Close();
Module.adoDovizTablo.SQL.Clear();
Module.adoDovizTablo.SQL.Add('select distinct(d.sDovizAciklama), d.sDovizKod, dk.dtTarih, dk.mAlis, dk.mSatis, dk.mEfektifAlis, dk.mEfektifSatis');
Module.adoDovizTablo.SQL.Add('from bt_Doviz d inner join bt_DovizKurlari dk on dk.nDovizID = d.nDovizID');
Module.adoDovizTablo.SQL.Add('where dtTarih = :Tarih');
Module.adoDovizTablo.SQL.Add('order by dtTarih');
Module.adoDovizTablo.Params[0].AsDateTime := EncodeDate(StrToInt(cbYil.Text), StrToInt(cbAy.Text), StrToInt(cbGun.Text));
Module.adoDovizTablo.Open();
end;