SQL Express ve database bağlantısı içinde ODBC kullanıyordum. Fakat ODBC ile ilgili yaşadığım bazı problemlerden dolayı doğrudan ADO ile SQL bağlantısı yapmak istedim. Bağlantı ile ilgili bir problem yok, kayıtlar geliyor, eklenebiliyor ve silinebiliyor. Fakat SQL Query'de tarih alanına göre arama yapamıyorum. Örneğin 16.03.2020 tarihinde girilmiş kayıtları listelemek istediğimde sorguya başlangıç ve bitiş tarihi olarak 16.03.2020 yazarsam eğer listelemiyor fakat başlangıç tarihine 15.03.2020 bitiş tarihine de 16.03.2020 yazarsam eğer 16.03.2020 tarihine ait kayıtları listeliyor. Acil yardımlarınızı rica ediyorum.
Şöyle bir durumu fark ettim; Eğer MonthCalender'dan veya DateTimePicker'dan seçilen tarihi önce bir değişkene atıp sonra query'de o değişkeni kullanırsam tarihe göre arama çalışıyor. Fakat bu şekilde yapmak demek tüm sistemde çok ciddi bir çalışma yapmak anlamına geliyor.
Kod: Tümünü seç
DM1.DataConn.Connected:= False;
DM1.DataConn.ConnectionString:= 'Provider=SQLNCLI11.1;Password=Abc.;Persist Security Info=True;User ID=sa;Data Source=SERVER\SQLEXPRESS;Auto Translate=False;Initial Catalog=SIRKET_2020;
DM1.DataConn.Connected:= True;
Kod: Tümünü seç
DM1.KURLAR.SQL.CLEAR;
DM1.KURLAR.SQL.Add('SELECT * FROM KURLAR');
DM1.KURLAR.SQL.Add('WHERE TARIH= :pTARIH1');
DM1.KURLAR.Parameters.ParamByName('pTARIH1').Value:= MonthCalender1.date;
DM1.KURLAR.Open;
Kod: Tümünü seç
DM1.KURLAR.SQL.CLEAR;
DM1.KURLAR.SQL.Add('SELECT * FROM KURLAR');
DM1.KURLAR.SQL.Add('WHERE TARIH>= :pTARIH1 AND TARIH<= :pTARIH2');
DM1.KURLAR.Parameters.ParamByName('pTARIH1').Value:= MonthCalender1.date; //15.03.2020
DM1.KURLAR.Parameters.ParamByName('pTARIH2').Value:= MonthCalender2.date; //16.03.2020
DM1.KURLAR.Open;
Kod: Tümünü seç
var
guntar:TDate;
begin
guntar:= StrToDate(MonthCalender1.date);
DM1.KURLAR.SQL.CLEAR;
DM1.KURLAR.SQL.Add('SELECT * FROM KURLAR');
DM1.KURLAR.SQL.Add('WHERE TARIH= :pTARIH1');
DM1.KURLAR.Parameters.ParamByName('pTARIH1').Value:= guntar;
DM1.KURLAR.Open;
end;