Çoklu ve şartlı sorgu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
AfterPost
Üye
Mesajlar: 158
Kayıt: 12 Tem 2014 10:22

Çoklu ve şartlı sorgu

Mesaj gönderen AfterPost »

sevgili delphi dostları;

stok adı kodu tarih
elma 1 01.01.2014
armut 2 01.03.2014

şimdi edita=a yazdığımı zaman ve datatime1=01.01.2014 ve datatime2=01.02.2014 dediğimi zaman
çıktısı
elma 1 01.01.2014 olacak şekilde bir sorgu
saygılar
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Çoklu ve şartlı sorgu

Mesaj gönderen mrmarman »

AfterPost yazdı:sevgili delphi dostları;

stok adı kodu tarih
elma 1 01.01.2014
armut 2 01.03.2014

şimdi edita=a yazdığımı zaman ve datatime1=01.01.2014 ve datatime2=01.02.2014 dediğimi zaman
çıktısı
elma 1 01.01.2014 olacak şekilde bir sorgu
saygılar
Veritabanın SQLServer olduğunu varsayarak

Kod: Tümünü seç

SELECT * FROM STOKTABLOSU WHERE StokAdi like 'e%' and Tarih BETWEEN '2014-01-01 00:00:00' AND '2014-02-01 23:59:59'
Resim
Resim ....Resim
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Çoklu ve şartlı sorgu

Mesaj gönderen brs »

Sayın Hocam mrmarman cevap vermiş,

Ben biraz dada ayrıntılı bir kod paylaşıyorum fakat eleştiri yapacağım ardaşlar lütfen konu açarken daha ayrıntılı bilgi veriniz sonuçta yan, yana olmadığımızdan sadece yazı ile iletişime geçtiğimizden ne demek istediğinizi anlamakta zor oluyor...

Kod: Tümünü seç

procedure TForm3.Button1Click(Sender: TObject);
begin
  with User do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select * From User Where KULLANICI=:Kadi and KAYITTARIHI BETWEEN :Tarih1 and :Tarih2');
    ParamByName('Kadi').Value := Edit1.Text;
    ParamByName('Tarih1').Value := datetostr(DateTimePicker1.Date);
    ParamByName('Tarih2').Value := datetostr(DateTimePicker2.Date);
    Prepared := True;
    Open;
    if IsEmpty then // Kayıt yoksa
    begin
      Bilgi.Caption := 'Belirtilen Tarihler Arasında Kayıt Bulunamadı!';
    end
    else
    begin
      Bilgi.Caption := 'Buldum!';
    end;
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
AfterPost
Üye
Mesajlar: 158
Kayıt: 12 Tem 2014 10:22

Re: Çoklu ve şartlı sorgu

Mesaj gönderen AfterPost »

hata veriyor..
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Çoklu ve şartlı sorgu

Mesaj gönderen brs »

veya

Kod: Tümünü seç

procedure TForm3.Button1Click(Sender: TObject);
begin
  with User do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select * From User Where KULLANICI like ' +QuotedStr('%' + Form1.Edit1.Text + '%') + ' and KAYITTARIHI BETWEEN :Tarih1 and :Tarih2');
    ParamByName('Tarih1').Value := datetostr(DateTimePicker1.Date);
    ParamByName('Tarih2').Value := datetostr(DateTimePicker2.Date);
    Prepared := True;
    Open;
    if IsEmpty then // Kayıt yoksa
    begin
      Bilgi.Caption := 'Belirtilen Tarihler Arasında Kayıt Bulunamadı!';
    end
    else
    begin
      Bilgi.Caption := 'Buldum!';
    end;
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Çoklu ve şartlı sorgu

Mesaj gönderen brs »

AfterPost yazdı:hata veriyor..

Ya arkadaş nerede hata veriyor bende hata verdim sayende iki mesaj önce ne yazmışım bir zahmet okusaydın ama ben senin için bir kez daha yazıyorum

fakat eleştiri yapacağım arkaşlar lütfen konu açarken daha ayrıntılı bilgi veriniz sonuçta yan, yana olmadığımızdan sadece yazı ile iletişime geçtiğimizden ne demek istediğinizi anlamakta zor oluyor...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
AfterPost
Üye
Mesajlar: 158
Kayıt: 12 Tem 2014 10:22

Re: Çoklu ve şartlı sorgu

Mesaj gönderen AfterPost »

size değil, mrmarman hocanın yazdığı koda dedim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Çoklu ve şartlı sorgu

Mesaj gönderen mrmarman »

AfterPost yazdı:size değil, mrmarman hocanın yazdığı koda dedim

hata veren kodu yazsaydın bari, klavyeden kısarak rejim yapamazsın :) hangi veritabanını kullandığını, tablo ismi alanların adlarını vs. paylaş ki yardımcı olalım.
Resim
Resim ....Resim
AfterPost
Üye
Mesajlar: 158
Kayıt: 12 Tem 2014 10:22

Re: Çoklu ve şartlı sorgu

Mesaj gönderen AfterPost »

SELECT * FROM STOKTABLOSU WHERE StokAdi like 'e%' and Tarih BETWEEN '2014-01-01 00:00:00' AND '2014-02-01 23:59:59'

'e%' hata veriyor hata açıklaması :expected but identifier 'e' found; veritabanı SQL 2005
stok adi :varch
tarih :datetime
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Çoklu ve şartlı sorgu

Mesaj gönderen mrmarman »

AfterPost yazdı:SELECT * FROM STOKTABLOSU WHERE StokAdi like 'e%' and Tarih BETWEEN '2014-01-01 00:00:00' AND '2014-02-01 23:59:59'

'e%' hata veriyor hata açıklaması :expected but identifier 'e' found; veritabanı SQL 2005
stok adi :varch
tarih :datetime
Tablo Adı : STOKTABLOSU
Alan Adları : StokAdi ve Tarih olması nokta atışı olmuş anlaşılan.

Sorguyu direkt SQL Manager ile mi yapıyorsun ? 'e%' kısmını kaldırıp sadece tarih kısmını bir denetle..

Kod: Tümünü seç

SELECT * FROM STOKTABLOSU WHERE Tarih BETWEEN '2014-01-01 00:00:00' AND '2014-02-01 23:59:59'
burada da hata verirse tek tırnak yerine çift tırnaklı hallerini denersin. Hata ortadan kalkınca tekrar LIKE ile "e%" şeklinde çift tırnaklı halini denersin.

Aslında fark olmamasına rağmen bende SQL Server 2012 kurulu olduğundan tek / çift tırnak olayından sorun olur mu konusunda emin olamıyorum.
Resim
Resim ....Resim
Cevapla