Sql & betwen
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Sql & betwen
Merhabalar arkadaslar
amacım iki tarih arasında baska kriterlerle birlikte sorgu yapmak
acaba asagıdaki kodlamada bi hata var mı?
Result := '';
if edit1.Text<> '' then
Result :=AddResult(Result) + ' Tarih between '''+ DateTimeToStr(dt1.DateTime)+''' and '''+DateTimeToStr(dt2.DateTime)+'''';
if edit4.Text <> '' then
Result := AddResult(Result) + ' Lot_No LIKE ''' + edit4.Text+ '%''';
amacım iki tarih arasında baska kriterlerle birlikte sorgu yapmak
acaba asagıdaki kodlamada bi hata var mı?
Result := '';
if edit1.Text<> '' then
Result :=AddResult(Result) + ' Tarih between '''+ DateTimeToStr(dt1.DateTime)+''' and '''+DateTimeToStr(dt2.DateTime)+'''';
if edit4.Text <> '' then
Result := AddResult(Result) + ' Lot_No LIKE ''' + edit4.Text+ '%''';
merhaba;
Ne hatası veriyor?
Yukarıdaki gibi bir deneyebilirsin;
+ SQL textinin son halini görmek istiyorsan,sorununu çözebilmek için birebirdir.
iyi günler...
Ne hatası veriyor?
Kod: Tümünü seç
Tarih BETWEEN ''' + DateToStr(dt1.Date) + ''' and ''' + DateToStr(dt2.Date) + ''' ';
+ SQL textinin son halini görmek istiyorsan,sorununu çözebilmek için birebirdir.
Kod: Tümünü seç
ShowMessage(IBQuery1.Text);
Hata mesajı olarak "Yanlış türdeki degişkenler kabul edilebilir aralık dısında veya baskasıyla cakısan bagımsız degislkenler kullanılıyor" diye bir hata
between komutunu sadece iki tarih arasındaki kayıtları gormek icin kullandıgımda sorunsuz calısıyor
ama 2. bir kriter koydugumda ornegin iki tarıh arasında makine numaralarıda su olan dedigimde bu hatayı veriyor.
between komutunu sadece iki tarih arasındaki kayıtları gormek icin kullandıgımda sorunsuz calısıyor
ama 2. bir kriter koydugumda ornegin iki tarıh arasında makine numaralarıda su olan dedigimde bu hatayı veriyor.
merhaba;
Bu hata mesajını veren SQL cümlesini gönderebilir misin?
+ birde hata mesajını default diliyle yazarsan daha iyi olur,anlaşılması için,alışkanlık...
Kod: Tümünü seç
Hata mesajı olarak "Yanlış türdeki degişkenler kabul edilebilir aralık dısında veya baskasıyla cakısan bagımsız degislkenler kullanılıyor"
+ birde hata mesajını default diliyle yazarsan daha iyi olur,anlaşılması için,alışkanlık...

Hatanın kaynaklandıgı kısım burası Sql e bu kısmaı ekledigimde hata veriyor
if edit1.Text<> '' then
Result :=AddResult(Result) +( ' Tarih between '''+ DateTimeToStr(dt1.DateTime)+''' and '''+DateTimeToStr(dt2.DateTime)+'''');
Hata kısmında su yazıyor
Project iplikhane.exe raised exception class EOleException With message "Yanlış türdeki degişkenler kabul edilebilir aralık dısında veya baskasıyla cakısan bagımsız degislkenler kullanılıyor" . Process stopped . Use Step Or Run to Continue.
yukardaki kodu ekledigimde hata veriyor
if edit1.Text<> '' then
Result :=AddResult(Result) +( ' Tarih between '''+ DateTimeToStr(dt1.DateTime)+''' and '''+DateTimeToStr(dt2.DateTime)+'''');
Hata kısmında su yazıyor
Project iplikhane.exe raised exception class EOleException With message "Yanlış türdeki degişkenler kabul edilebilir aralık dısında veya baskasıyla cakısan bagımsız degislkenler kullanılıyor" . Process stopped . Use Step Or Run to Continue.
yukardaki kodu ekledigimde hata veriyor
Bence şu şekilde yaparsan daha sağlıklı olur;
Kod: Tümünü seç
var
ilk_tarih : string;
son_tarih: string;
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('select * from table');
AdoQuery1.SQL.Add('where field_name between :fld_ilk_tarih and :fld_son_tarih');
AdoQuery1.Parameters.ParamByName('fld_ilk_tarih').Value := StrToDate(ilk_tarih);
AdoQuery1.Paremeters.ParamByName('fld_son_tarih').Value := StrToDate(son_tarih);
AdoQuery1.Open;
end;
Bilgi paylaştıkça çoğalır. Başarı ise bunun sonucudur.
bu da diğer bir benzer tarih sorgusu
aşağıdaki örnekte sql veritabaninda denenmiştir..
kolay gelsin
-----
procedure TForm1.cxButton7Click(Sender: TObject);
begin
AdoQuery1.Close;
AdoQuery1.Sql.Clear;
AdoQuery1.Sql.Add('Select * From TABLO1 where (Cevap_Tarihi>=:Tarih_ilki and Cevap_Tarihi<=:Tarih_Sonu) ');
AdoQuery1.Parameters[0].Value :=(inputbox('Gorev onayı Tarihi ilki','','01/11/2004'));
AdoQuery1.Parameters[1].Value :=(inputbox('Görev Onayı Tarihi Sonu','','12/12/2004'));
AdoQuery1.Open;
StatusBar1.Panels.Items[0].text:=('Kayıt Sayısı : ' +inttostr(AdoQuery1.RecordCount));
end;
kolay gelsin
-----
procedure TForm1.cxButton7Click(Sender: TObject);
begin
AdoQuery1.Close;
AdoQuery1.Sql.Clear;
AdoQuery1.Sql.Add('Select * From TABLO1 where (Cevap_Tarihi>=:Tarih_ilki and Cevap_Tarihi<=:Tarih_Sonu) ');
AdoQuery1.Parameters[0].Value :=(inputbox('Gorev onayı Tarihi ilki','','01/11/2004'));
AdoQuery1.Parameters[1].Value :=(inputbox('Görev Onayı Tarihi Sonu','','12/12/2004'));
AdoQuery1.Open;
StatusBar1.Panels.Items[0].text:=('Kayıt Sayısı : ' +inttostr(AdoQuery1.RecordCount));
end;
Gelecek günden ne dilersen, doğacak günler onu getirir