SQL ile DBGridde Alan Sorgulaması
SQL ile DBGridde Alan Sorgulaması
//procedure TForm1.Button1Click(Sender: TObject);
//begin
//with IBQuery1 do begin
//Close;
//SQL.Clear;
//SQL.Add('SELECT * FROM IZAHAT ORDER BY TARIH');
//open;
//end;
//end;
Tabloda IBSQL ve IBQuery bileşeni( ayarlı)olmasına rağmen yukarıdaki kodla DBGridde sorgulama yapamıyorum..(TARIH Kolonu index'li)
//begin
//with IBQuery1 do begin
//Close;
//SQL.Clear;
//SQL.Add('SELECT * FROM IZAHAT ORDER BY TARIH');
//open;
//end;
//end;
Tabloda IBSQL ve IBQuery bileşeni( ayarlı)olmasına rağmen yukarıdaki kodla DBGridde sorgulama yapamıyorum..(TARIH Kolonu index'li)
En son Turki tarafından 21 May 2005 08:13 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Tarih Sorgulama....
IBTable1 Bağlı ..Zaten Ayarlarınıda Bu siteden örnek alıp yaptım....Hiç bir hata vermiyor..ama işlemde yapmıyor...yani hiç bir hareket yok...
//IBTable1.Filter:='TARIH='+QuotedStr(Edit5.Text);//kriter
//IBTable1.Filtered:=true;//kriteri uygula
Kriteri Bu Şekilde Alıyorum..Hiç bir problem yok...Tabi Benim Amacım SQL yi Öğrenmek...
Not:IBQuery1 Bileşeninin Database,DataSource ve Transaction ayarları tanımlı Fakat Active Seçeneği False,True olmuyor.."SQL Error SQL error code =-104 Unexpected end of command" hatası veriyor...Bundan olabilirmi!!
//IBTable1.Filter:='TARIH='+QuotedStr(Edit5.Text);//kriter
//IBTable1.Filtered:=true;//kriteri uygula
Kriteri Bu Şekilde Alıyorum..Hiç bir problem yok...Tabi Benim Amacım SQL yi Öğrenmek...
Not:IBQuery1 Bileşeninin Database,DataSource ve Transaction ayarları tanımlı Fakat Active Seçeneği False,True olmuyor.."SQL Error SQL error code =-104 Unexpected end of command" hatası veriyor...Bundan olabilirmi!!
-
- Kıdemli Üye
- Mesajlar: 1026
- Kayıt: 11 Şub 2005 02:12
- Konum: İstanbul
S.A.
peki tarih yerine diğer alanlardan birini filitrelemeyi denediğinde sonuca ulaşabiliyormusun.
Bide onu dene. Eğer sonuca ulaşıyorsan benim aklıma iki ihtimal geliyor.
1.si tarih formatın. eğer tarih formatın saatide içine alıyorsa onuda kontrol etmen gerekiyor.
2.si uygun kayıt olmadığı için boş dönüyordur.
Kolay gelsin.
peki tarih yerine diğer alanlardan birini filitrelemeyi denediğinde sonuca ulaşabiliyormusun.
Bide onu dene. Eğer sonuca ulaşıyorsan benim aklıma iki ihtimal geliyor.
1.si tarih formatın. eğer tarih formatın saatide içine alıyorsa onuda kontrol etmen gerekiyor.
2.si uygun kayıt olmadığı için boş dönüyordur.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
S.A.
peki tarih yerine diğer alanlardan birini filitrelemeyi denediğinde sonuca ulaşabiliyormusun.
Bide onu dene. Eğer sonuca ulaşıyorsan benim aklıma iki ihtimal geliyor.
1.si tarih formatın. eğer tarih formatın saatide içine alıyorsa onuda kontrol etmen gerekiyor.
2.si uygun kayıt olmadığı için boş dönüyordur.
Kolay gelsin.
peki tarih yerine diğer alanlardan birini filitrelemeyi denediğinde sonuca ulaşabiliyormusun.
Bide onu dene. Eğer sonuca ulaşıyorsan benim aklıma iki ihtimal geliyor.
1.si tarih formatın. eğer tarih formatın saatide içine alıyorsa onuda kontrol etmen gerekiyor.
2.si uygun kayıt olmadığı için boş dönüyordur.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Evet Mesala KARTNO,MUSTERIKD,İndexli iKİ Sütun daha var TARİH(DATE olarak seçili) Sütunuda dahil Aşağıdaki Kodla Sıralama yapıyorum..(Tabi Karekterin hepsini yazmak şartıyla..)
// IBTable1.Filter:='KARTNO='+QuotedStr(Edit4.Text);//kriter
// IBTable1.Filtered:=true;//kriteri uygula
SQL ile Daha ayrıntılı sıralama yapmak istiyorum..Mesela İlk Karektere basarak sıralama yapmak..tekrar ikinci karektere basarak ...sıralama ve üç...dört diye gitmesini istiyorum..Mesela Paradoxta ben aşağıdaki şekilde istediğimi alıyordum...
//Table1.FilterOptions:=[FoCaseInsensitive];//harf duyarlılığı yok
//Table1.Filter:='KARTNO='+QuotedStr(Edit2.Text+'*');//kriter
//Table1.Filtered:=true;//kriteri uygula
Tablo Oluşumu:
KARTNO VARCHAR 12 NOT NULL PRİMARY (İNDEXLİ)
MUSTERIKD VARCHAR 12 (İNDEXLİ)
MALINCINSI VARCHAR 18
ADRES VARCHAR 25
TARIHI DATE (İNDEXLİ)
FIATI........Şeklinde gidiyor......
// IBTable1.Filter:='KARTNO='+QuotedStr(Edit4.Text);//kriter
// IBTable1.Filtered:=true;//kriteri uygula
SQL ile Daha ayrıntılı sıralama yapmak istiyorum..Mesela İlk Karektere basarak sıralama yapmak..tekrar ikinci karektere basarak ...sıralama ve üç...dört diye gitmesini istiyorum..Mesela Paradoxta ben aşağıdaki şekilde istediğimi alıyordum...
//Table1.FilterOptions:=[FoCaseInsensitive];//harf duyarlılığı yok
//Table1.Filter:='KARTNO='+QuotedStr(Edit2.Text+'*');//kriter
//Table1.Filtered:=true;//kriteri uygula
Tablo Oluşumu:
KARTNO VARCHAR 12 NOT NULL PRİMARY (İNDEXLİ)
MUSTERIKD VARCHAR 12 (İNDEXLİ)
MALINCINSI VARCHAR 18
ADRES VARCHAR 25
TARIHI DATE (İNDEXLİ)
FIATI........Şeklinde gidiyor......
Firebirdde sorgulama problemim devam ediyor...
Bir hafta önce sordum fakat işlerim dolayısıyla biraz ara vermiştim..Firebirdde hala sorgulama yapamıyorum..IBExpert de tabloyu hazırladım.Tabloyu Compile ettim.hiç bir hata vermedi..10 tane sütunum var bunlardan 4 ünde filitreleme veya listeleme yapmak istiyorum..KARTNO(PRİMARY İNDEX,NOT NULL),MUSTERIKD (INDEX ),CINSI(INDEX) VE TARIH (INDEX) Lİ..Tabloya problemsiz kayıt giriyorum..Delphiye bağlanma araçları;IBTABLE,IBTRANSACTİON,IBDATABASE,DATASOURCE VE IBQUERY..DBGRİD'DE DataSource=DATASURCE1,DataSet=IBTable tanımlı DATASOURCE de DataSet=IBTable1, IBTABLE de DataBase=IBDatabase1, Transaction da IBTransaction1 tanımlı ,IBTransactionda DefaultDatabase=IBDatabase1 tanımlı ,Params Strings de "read_committed rec_version nowait" ayarlı, IBDatabase de DefaultTransaction=IBTransaction1 tanımlı, Params Strings de "user_name=SYSDBA password=masterkey lc_ctype=WIN1254" ayarlı IBQuery de DataBase=IBDatabase1, Datasource=DataSource1, Transaction=IBTransaction1 tanımlı ayrıca SQL String de "Select * From DATA" ayarlı IBQuery1'in Active=true peki ben nerede hata yaptım aşağıdaki kodla sorgulama yapamıyorum
//with IBQuery1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM DATA ORDER BY MUSTERIKD');
OPEN;
end;
END;
Yine aşağıdaki kodla yapıyorum!!
//Table1.Filter:='KARTNO='+QuotedStr(Edit2.Text);
Table1.Filtered:=true;
Lütfen yardım yoksa kafayı yiyeceğim,veya Paradox a döneceğim Çünkü Tabloyu yetiştirmem lazım,Onda hazırladığım Tablo tıkır tıkır çalışıyor vede sorgulamanın her türlüsünü yapıyorum..Firebird mi karışık yoksa bendemi bir şey var..oysa sitenizde örnekleri aynen uyguluyorum..Yinede hepinize teşekkür ederim Bir sorgulama yüzünden teslim olmak istemiyorum...Çünkü Her türlü güvenlik önlemi almama rağmen, Paradox a da güvenmiyorum...
//with IBQuery1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM DATA ORDER BY MUSTERIKD');
OPEN;
end;
END;
Yine aşağıdaki kodla yapıyorum!!
//Table1.Filter:='KARTNO='+QuotedStr(Edit2.Text);
Table1.Filtered:=true;
Lütfen yardım yoksa kafayı yiyeceğim,veya Paradox a döneceğim Çünkü Tabloyu yetiştirmem lazım,Onda hazırladığım Tablo tıkır tıkır çalışıyor vede sorgulamanın her türlüsünü yapıyorum..Firebird mi karışık yoksa bendemi bir şey var..oysa sitenizde örnekleri aynen uyguluyorum..Yinede hepinize teşekkür ederim Bir sorgulama yüzünden teslim olmak istemiyorum...Çünkü Her türlü güvenlik önlemi almama rağmen, Paradox a da güvenmiyorum...
Hocam bahsettiginiz olay forum icerisinde cok kere gecmis bir mevzu.
en son mesajınızdaki sql cumlesinde where kriteri yok haliyle tum kaıtları gorursunuz.
Benim anladıgıma gore ibtable yada dataset ile tabloyu acıp gridde gosteriyorsunuz, query ile sorgulama yaparak kayıt mı bulmak istiyorsunuz?
yoksa edit kutusuna kriteri girdikce aynı grid uzerinde sadece o kritere sahip
kayıtları mı gostermek istiyorsunuz.
Eger ikinci soruya cevabınız ewt ise ibtable yerine ibdataset kullanın
ve editin onchange olayında ibdatasetin selectSQL ini yeniden duzenleyin. ve dataseti kapatıp acın.
en son mesajınızdaki sql cumlesinde where kriteri yok haliyle tum kaıtları gorursunuz.
Benim anladıgıma gore ibtable yada dataset ile tabloyu acıp gridde gosteriyorsunuz, query ile sorgulama yaparak kayıt mı bulmak istiyorsunuz?
yoksa edit kutusuna kriteri girdikce aynı grid uzerinde sadece o kritere sahip
kayıtları mı gostermek istiyorsunuz.
Eger ikinci soruya cevabınız ewt ise ibtable yerine ibdataset kullanın
ve editin onchange olayında ibdatasetin selectSQL ini yeniden duzenleyin. ve dataseti kapatıp acın.
ÜŞENME,ERTELEME,VAZGEÇME
her ikisinide yapmak istiyorum..
Hocam Ben Paradox daki gibi sorgulama yapmak istiyorum..Firebird e yeni geçtim..Paradoxda edit içinde karekterlerlere basarak DBRİDde listeleme ,Kolonlarıda ayrı ayrı başlıklarına veye butonlarla,tıklayarak Alfabetik olarak listeleyebiliyordum.daha doğrusu ikisinide yapmak için hangi araçları kullanacağımıda bilmiyorum..Paradoxda üç araçla delphiye bağlanıp DBGRİD de hepsini yapıyordum.....İlgilendiğiniz için teşekkürler...
Hocam Ben Paradox daki gibi sorgulama yapmak istiyorum..Firebird e yeni geçtim..Paradoxda edit içinde karekterlerlere basarak DBRİDde listeleme ,Kolonlarıda ayrı ayrı başlıklarına veye butonlarla,tıklayarak Alfabetik olarak listeleyebiliyordum.daha doğrusu ikisinide yapmak için hangi araçları kullanacağımıda bilmiyorum..Paradoxda üç araçla delphiye bağlanıp DBGRİD de hepsini yapıyordum.....İlgilendiğiniz için teşekkürler...
Ben paradox da yapıb da firebird de yapamadığım olayları tam anlatamadım galiba ..Tabloya Girdiğim kayıtlarda bir problem yok,DBGRİD de hepsini görüyorum..açılışta KARTNO Sütunum Filitreli olarak geliyor onu Object Inspector Yaprağından ayarladım..TARIH Sütunumda da;
IBTable1.Filter:='TARIH='+QuotedStr(Edit5.Text);//kriter
IBTable1.Filtered:=true;//kriteri uygula
bu kodla istediğimi alıyorum.Benim esas sorunum 1=Edit içinde Klavyeden Kriterlere basarak DBGridde Alfabetik sıralama yapmak..
2=Sütun Başlıklarına basarak veya o sütunu çalıştıracak butona tıklayarak Alfabetik sıralama yapmak ...
Çünkü Yukarıdaki saydıklarımın hepsini ben paradox da çok basit Kodlarla yapıyorum...Firebird in anlatılan o üstün özelliklerinden faydalanmak istiyorum.. ama bu yazılanlardan anladığım kadarıyla 1.nci ve 2.nci şıkları aynı araçlarla yapamayacağımı anlıyorum ben......İnşallah yanlış anlamışımdır...
IBTable1.Filter:='TARIH='+QuotedStr(Edit5.Text);//kriter
IBTable1.Filtered:=true;//kriteri uygula
bu kodla istediğimi alıyorum.Benim esas sorunum 1=Edit içinde Klavyeden Kriterlere basarak DBGridde Alfabetik sıralama yapmak..
2=Sütun Başlıklarına basarak veya o sütunu çalıştıracak butona tıklayarak Alfabetik sıralama yapmak ...
Çünkü Yukarıdaki saydıklarımın hepsini ben paradox da çok basit Kodlarla yapıyorum...Firebird in anlatılan o üstün özelliklerinden faydalanmak istiyorum.. ama bu yazılanlardan anladığım kadarıyla 1.nci ve 2.nci şıkları aynı araçlarla yapamayacağımı anlıyorum ben......İnşallah yanlış anlamışımdır...