Sql & betwen
dtgb26.07.2005 - 15:12:21
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+ '%''';
 
miskin26.07.2005 - 16:54:43
between ..... LiteNo arasinda herhangi bir and yada or yok
 
dtgb27.07.2005 - 10:48:28
iki if ifadesi arasında ad var onu baska yerde yazdırıyorum zaten sorun betweeen komutunun oldugu cumlecikte onu duzeltemedim
 
Uğur198227.07.2005 - 11:00:29
merhaba;

Ne hatası veriyor?

Tarih BETWEEN ''' + DateToStr(dt1.Date) + ''' and ''' + DateToStr(dt2.Date) + ''' ';


Yukarıdaki gibi bir deneyebilirsin;

+ SQL textinin son halini görmek istiyorsan,sorununu çözebilmek için birebirdir.

ShowMessage(IBQuery1.Text);


iyi günler...
 
dtgb27.07.2005 - 13:11:16
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.
 
Uğur198227.07.2005 - 16:07:40
merhaba;

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"


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... Wink
 
dtgb28.07.2005 - 09:01:38
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
 
gkimirti28.07.2005 - 09:24:37
Veri tabanın nedir, Acces mi?
Eger oyleyse sorunun basında belirtmeniz halinde bu kadar beklemzdiniz.
bildigim kadarıyla access te tarih alanlarını #12.12.2004# seklinde kullanmak gerekiyor
herkes ' ile tarih alanlarını kullanırken M$ gider tersine....
 
dtgb28.07.2005 - 09:40:08
hayır veri tabanı sql
sorunu ancak su sekilde cozebildim
iki ayrı sql cumlesi yazdım
once tarih belirtilmisse o tarih aralıgına gore verileri suzuyor sonrada suzulmus olan verileri diger kriterlere gore sorgulayarak yaptım ama gecici bi cozum tabi
 
67neo05.08.2005 - 15:02:01
Bence şu şekilde yaparsan daha sağlıklı olur;


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;
 
Çağrıbey05.08.2005 - 15:31:34
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;
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com