deger:=strtoint(edit1.text);
IBDataSet1.close;
IBDataSet1.SelectSQL.Clear;
IBDataSet1.SelectSQL.Add('select * from a1 where sn=+deger');
IBDataSet1.open;
sn alanı integer bunu edit ten aldığım sayıyı integera çevirerek direk sorgudan karşılaştırmak istiyorum.ama çalışmıyor sorunun nerede olduğunu söylerseniz çok sevinirim.
Teşekkürler...
kodu denemeden cevap vermek ayıp olucak ama bir kaç önerim olucak. sn den sonra like kullanmak gerekiyor olabilir, bide
deger:integer;
begin
diyerek edit içindeki değeri integere dönüştürüp parametrede kullanabilirsin.
ama forumda aratırsan benim bu garip cevabımdan pek çok çok iyi cevaplara ulaşabilirsin.
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
deger:=strtoint(edit1.text);
IBDataSet1.close;
IBDataSet1.SelectSQL.Clear;
IBDataSet1.SelectSQL.Add('select * from a1 where sn='+deger);
IBDataSet1.open;
böyle yapınca column unknown deger hatası veriyor deger değişkenini kolon olarak alıyor.
deger zaten integer değişken arkadaşlar onu yazmaya gerek duymadım sorun burdan mı kaynaklanıyor acaba
kullan derim.ben ibdataset le tablo sorgulama yapmadım,belki yapanlar vardır.ama ne yapmak istediğini anlatırsan (sorgu sonucu ile) daha iyi olur.kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
('select*from tablom where alanım like '''+edit1.text+'''');
şeklinde ve çalışıyor.
bi fikir vermesi açısından kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
Burada yapmak istediğim kayıdın sn alanına gore arama yapmak ibsql daha performanslı çalışır ama benim yaptığım ufak bir örnek sadece paramatreyle yapsam sorun hallolacak ama bu sefer boyle yapmam lazım.
Şeklinde yapınca incompatible types hatası verdi.
Tekrra söylüyorum yapmak istediğim direk sayısal alanı karşılaştırmak stringe çevirmeden ve parametre kullanmadan iş arkadaşım bunun mümkün olmadığını iddia ediyor
şeklinde deneseniz diyorum int den değişimi sql içinde yapsanız
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
Kullanılan alan int tipindeyse fazladan tırnaklar kullanman anlamlı degil.
Birde aşagıdaki şekilde kullan, ayrıca sn kolonun a1 tablosunda olup olmadıgını kontrol et:
IBDataSet1.SelectSQL.Add('select * from a1 a where a.sn='+deger);