integer alanı sql de sorgulamak
integer alanı sql de sorgulamak
Arkadaşlar, alan olarak daha evvelden integer olarak belirlediğim bir kısmı ne yaptıysam sql sorgulayamıyorum. Bu alanı string olarak değiştirirsem problem yok ve sorgu yapabiliryorum. Ancak buda mümkün değil bu programı çok kullanan var, hepsinin datalarına ulaşıp bu alanı string yapamam. Lütfen bu konuda ne yapmam gerek bilgi verirseniz çok memnun olurum.
Şöyle yapabilirsin..
hocam tam olarak şuna ihtiyacım var..
begin
DBISAMQuery1.Close;
DBISAMQuery1.SQL.Clear;
DBISAMQuery1.SQL.Add('Select * From DATA ');
DBISAMQuery1.SQL.Add('Where lower("MEMUR SOYADI") Like "%'+lowercase(DNEdit1.text)+'%"'+' Order By "MEMUR SOYADI"');
DBISAMQuery1.Open;
DataSource1.DataSet:=DBISAMQuery1;
end;
hocam, DNEdit1.text ile isim sorgusu yapıyorum. isim sorgularken problem yok. DNEdit2.text nesnesi ile de rakamaları(sicilleri) sorgulamak istiyorum. (alan ismi 'sicil' ve integer)Bu koda göre düzenlemeniz mümkünmü? Çok teşekkür ederim.
Kod: Tümünü seç
begin
DBISAMQuery1.Close;
DBISAMQuery1.SQL.Clear;
DBISAMQuery1.SQL.Add('Select * From DATA ');
DBISAMQuery1.SQL.Add('WHERE SICIL = '+DNEdit1.text+'ORDER BY SICIL');
DBISAMQuery1.Open;
DataSource1.DataSet:=DBISAMQuery1;
end;
Kolay gelsin..
teşekkürler
arkadaşlar, sorunu tamamen hallettim. ilgi ve alaka gösteren tüm arkadaşlara sonsuz teşekkürler.
begin
DBISAMQuery1.Close;
DBISAMQuery1.SQL.Clear;
DBISAMQuery1.SQL.Add('Select * From DATA ');
DBISAMQuery1.SQL.Add('WHERE SICIL = '+DNEdit1.text+'ORDER BY SICIL');
DBISAMQuery1.Open;
DataSource1.DataSet:=DBISAMQuery1;
end;
Naile hanım. Gönderdiğiniz kodlarda bütün arkadaşlarda aynı hata ile karşılaşıyorum. Aslında hata değil fakat standart dışı bir uygulama bence. Üstelik delphinin tavsiyelerine de uymuyor.Yukarda vermiş olduğunu kodu
Aşağıda gönderdiğim şekilde yazarsanız, (yani DBEdit gibi bileşenleri SQL kodunun içine gömmeden) Hem delphinin tavsiyelerine uymuş olursunuz hemde asla sorun çıkartmaz. Bu ikazı epeydir yapayım diyordum ama ukelalık olur babından yazmamıştım. Bunu ukelalık gibi algılamazsanız sevinirim.
Yukardaki kodun DBISAM bileşeni ile değil de normal delphi data bileşenleri ile yazdığınızı düşünün;
1.Veritabanı değiştirdiğinizde sorun yaşamayacaksınız.
2.SQL kodunuz sade ve anlaşılır olacak.
3.Ne parametre göndermiştim diye çırpınmayacaksınız
4.Delphinin tavsiyelerine uyacaksınız.
5.UnPrepare ve prepare metotları sebebiyle hafıza problemi yaşamayacaksınız.
6.Kodlarınız SQL serverlarda kolay çözülecek.
7.Hız kazanacaksınız.
8.Asla kilitlenmeler yaşamayacaksınız...
Kod aşağıdaki gibi olmalı...
Try
Query1.Close;
Query1.Unprepare;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From DATA ');
Query1.SQL.Add('WHERE SICIL =:AAA ORDER BY SICIL');
Query1.prepare;
Query1.Params[0].AsInteger:=StrToInt(DBedit1.Text);
Query1.Open;
Except
On Exception do raise;
end;
Sevgiler...
DBISAMQuery1.Close;
DBISAMQuery1.SQL.Clear;
DBISAMQuery1.SQL.Add('Select * From DATA ');
DBISAMQuery1.SQL.Add('WHERE SICIL = '+DNEdit1.text+'ORDER BY SICIL');
DBISAMQuery1.Open;
DataSource1.DataSet:=DBISAMQuery1;
end;
Naile hanım. Gönderdiğiniz kodlarda bütün arkadaşlarda aynı hata ile karşılaşıyorum. Aslında hata değil fakat standart dışı bir uygulama bence. Üstelik delphinin tavsiyelerine de uymuyor.Yukarda vermiş olduğunu kodu
Aşağıda gönderdiğim şekilde yazarsanız, (yani DBEdit gibi bileşenleri SQL kodunun içine gömmeden) Hem delphinin tavsiyelerine uymuş olursunuz hemde asla sorun çıkartmaz. Bu ikazı epeydir yapayım diyordum ama ukelalık olur babından yazmamıştım. Bunu ukelalık gibi algılamazsanız sevinirim.
Yukardaki kodun DBISAM bileşeni ile değil de normal delphi data bileşenleri ile yazdığınızı düşünün;
1.Veritabanı değiştirdiğinizde sorun yaşamayacaksınız.
2.SQL kodunuz sade ve anlaşılır olacak.
3.Ne parametre göndermiştim diye çırpınmayacaksınız
4.Delphinin tavsiyelerine uyacaksınız.
5.UnPrepare ve prepare metotları sebebiyle hafıza problemi yaşamayacaksınız.
6.Kodlarınız SQL serverlarda kolay çözülecek.
7.Hız kazanacaksınız.
8.Asla kilitlenmeler yaşamayacaksınız...
Kod aşağıdaki gibi olmalı...
Try
Query1.Close;
Query1.Unprepare;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From DATA ');
Query1.SQL.Add('WHERE SICIL =:AAA ORDER BY SICIL');
Query1.prepare;
Query1.Params[0].AsInteger:=StrToInt(DBedit1.Text);
Query1.Open;
Except
On Exception do raise;
end;
Sevgiler...
En son sair tarafından 26 Ara 2003 08:24 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Uyarınız için teşekkürler, ben parametre de kullanıyorum fakat genelde insert update gibi çok değişken kullanmam gerekti veya tarih alanlarında eğer sadece bir değişken varsa bunun için parametre kullanmaya üşeniyorum
Aslında arkadaşlara tavsiyede bulunurken dediğiniz şekli de yazsam iyi olurdu, haklısınız ama işte el alışkanlığı.

Aslında arkadaşlara tavsiyede bulunurken dediğiniz şekli de yazsam iyi olurdu, haklısınız ama işte el alışkanlığı.