arama sonucunu hatırlamasın

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
guduknecmi
Üye
Mesajlar: 99
Kayıt: 08 Nis 2004 02:18
İletişim:

tek sonuç gelsin

Mesaj gönderen guduknecmi »

selamlar
yukarıdaki kod ile programı kullanırken arama kriterlerini birleştirmiyor ikisini ayrı ayrı arıyor.(yani Ahmet demir ismini ararken hem adı ahmet olanları hemde soyadı demir olanları getiriyor.)
Bu duruma mege'nin verdiği kod çözüm olabilir diye düşündüğümden

Kod: Tümünü seç

with dm.Ibdataset1 do
begin
        close;
	selectsql.clear;
	selectsql.Add('select * from YESILKART where 1=1');
if edit1.text<>'' then
	selectsql.Add('and PROTOKOL = "'+edit1.text+'"');
if edit2.text <>'' then
	selectsql.Add('and ADI = "'+edit2.text+'"');
if edit3.text<>'' then
	selectsql.Add('and SOYADI ="'+edit3.text+'"');
	selectsql.Add(' order by ADI');
open;
end
kodlarını kullandım. Ancak

Kod: Tümünü seç

Project evrak.exe raised exception class EIBInterBaseError with message 'Dynamic SQL Error
SQL error code :-206
column unknown
2
At line 3, column2'.Process Stopped.Use step or Run to continue.
hatasını verdi. sizce nerede hata yapıyorum.Ya da örnekteki Ahmet Demir ismini araken sadece "Ahmet Demir"i getirmesini nasıl sağlarım.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
open;
komutundan önce forma koyduğunuz bir memonun lines ina sql kodlarını atarsanız hatayı daha net görebilirsiniz. Problem sanırım oluşturulan sqlde.
sql kodunu da buraya gönderirseniz. bizlerde yardımcı olabiliriz.

Kod: Tümünü seç

  ........
   selectsql.Add(' order by ADI'); 
  //buarada atamayı yapabilirsiniz.
  memo1.lines:=selectsql;
open; 
.......
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
guduknecmi
Üye
Mesajlar: 99
Kayıt: 08 Nis 2004 02:18
İletişim:

Mesaj gönderen guduknecmi »

selam.
aslangeri dediğini yaptım.memo1 de yazanlar:

Kod: Tümünü seç

select* from YESILKART where 1=1
 and SOYADI="DEMİR"
order by ADI
soyadı bölümünden DEMİR'i arattım
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

ve A.S.
peki bu sql çalıştımı yani
Ahmet Demir i arattığında verdiği hatayı burdada verdimi?

Bu sql i diğer programlardan çalıştırdığın zaman hata veriyormu.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
guduknecmi
Üye
Mesajlar: 99
Kayıt: 08 Nis 2004 02:18
İletişim:

Mesaj gönderen guduknecmi »

memo1.lines:=selectsql; ile oluşan kodu görelim demiştin.

(oluşan sql i görmek istediğin için) yukarıda yazdığım kod üzerinde değişiklik yapmadım, program debug moda girdi, hata da değişmedi.sadece hatadaki 4.satırdaki 2 yerine neyi aratmışsam o çıkıyor.(Hatayı da yukarda yazdım) Diğerleri değişmiyor.
bu sql i başka programlarda kullanmadım.(daha bu programda bile kullanamadım).İsterseniz sorunumu ,kodları ve hatayı tekrar yazabilirim.
kodlarda bir problem görünüyor mu?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

Tekrar merhaba
Sanırım problem editleri aratırken çift tırnak kullanmandan kaynaklanıyor

Kod: Tümünü seç

with dm.Ibdataset1 do 
begin 
        close; 
   selectsql.clear; 
   selectsql.Add('select * from YESILKART where 1=1'); 
if edit1.text<>'' then 
   selectsql.Add('and PROTOKOL = '''+edit1.text+''''); 
if edit2.text <>'' then 
   selectsql.Add('and ADI = '''+edit2.text+''''); 
if edit3.text<>'' then 
   selectsql.Add('and SOYADI ='''+edit3.text+''''); 
   selectsql.Add(' order by ADI'); 
open; 
end
böyle bir dene çalışması lazım.
anladığım kadarıyla çift tırnak kullandığın zaman ib bunu column adı olarak arıyor bulamayıncada column uncnown
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
guduknecmi
Üye
Mesajlar: 99
Kayıt: 08 Nis 2004 02:18
İletişim:

Mesaj gönderen guduknecmi »

aslangeri sana çok teşekkür ederim.
Program tam istediğim gibi çalışıyor.
Bilgisini paylaşan herkesten ALLAH RAZI OLSUN.
Cevapla