herkese iyi çalışmalar arkadaşlar
Şöyle bir sql kodunu nasıl yazarız acaba
procedure Tfgoster.Edit2Change(Sender: TObject);
begin
fana.ADOQuery1.Close;
fana.ADOQuery1.SQL.Clear;
fana.ADOQuery1.SQL.Add('select * from personel where alan1 like"'+Edit2.Text+'%"');
fana.ADOQuery1.Open;
end;
bu kodu kullanıyorum ok sorun yok ama.Ben 3 alanda aynı aynda sorgulama yapmak istiyorum.
3 tane combobox var ve bir tane edit var.alan1 alan2 alan3 e göre aynı anda nasıl aratma yapabilirim acaba.
birden fazla alana göre arama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
fana.ADOQuery1.SQL.Add('select * from personel where cinsiyet like "'+combobox1.Text+'%"' and isdurumu like "'+combobox2.Text+'%"' and serturu like'''+combobox4.Text+'%''); şeklinde yaptım ama aşağıdaki hatayı verdi.Kodlamada bir hata mı yaptım acaba.
[Error] Ugoster.pas(271): Undeclared identifier: 'isdurumu'
[Error] Ugoster.pas(271): Illegal character in input file: '"' ($22)
[Error] Ugoster.pas(271): Illegal character in input file: '%' ($25)
[Error] Ugoster.pas(271): Unterminated string
[Error] Ugoster.pas(272): Missing operator or semicolon
Bir de yukarıdaki kodu düzelttikten sonra bir ekleme yapmam lazım şöyleki:
fana.ADOQuery1.Close;
fana.ADOQuery1.SQL.Clear;
if combobox3.Text='1.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce1 like"'+Edit2.Text+'%"');
if combobox3.Text='2.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce2 like"'+Edit2.Text+'%"');
if combobox3.Text='3.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce3 like"'+Edit2.Text+'%"');
if combobox3.Text='4.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce4 like"'+Edit2.Text+'%"');
if combobox3.Text='5.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce5 like"'+Edit2.Text+'%"');
if combobox3.Text='6.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce6 like"'+Edit2.Text+'%"');
fana.ADOQuery1.Open;
bu kodları edit2nin onchange olayına yazıyorum ve combobox3 ün aldığı değere göre arama yapıyo sorun yok.Yanlız enbaştaki kodla bu kodları tek çatı altında toplamam lazım.
Yani (combobox1) + (combobox2) + (combobox4) + (combobox3 e göre edit2) var mı böyle birşey
[Error] Ugoster.pas(271): Undeclared identifier: 'isdurumu'
[Error] Ugoster.pas(271): Illegal character in input file: '"' ($22)
[Error] Ugoster.pas(271): Illegal character in input file: '%' ($25)
[Error] Ugoster.pas(271): Unterminated string
[Error] Ugoster.pas(272): Missing operator or semicolon
Bir de yukarıdaki kodu düzelttikten sonra bir ekleme yapmam lazım şöyleki:
fana.ADOQuery1.Close;
fana.ADOQuery1.SQL.Clear;
if combobox3.Text='1.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce1 like"'+Edit2.Text+'%"');
if combobox3.Text='2.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce2 like"'+Edit2.Text+'%"');
if combobox3.Text='3.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce3 like"'+Edit2.Text+'%"');
if combobox3.Text='4.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce4 like"'+Edit2.Text+'%"');
if combobox3.Text='5.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce5 like"'+Edit2.Text+'%"');
if combobox3.Text='6.Tercih' then
fana.ADOQuery1.SQL.Add('select * from personel where ilce6 like"'+Edit2.Text+'%"');
fana.ADOQuery1.Open;
bu kodları edit2nin onchange olayına yazıyorum ve combobox3 ün aldığı değere göre arama yapıyo sorun yok.Yanlız enbaştaki kodla bu kodları tek çatı altında toplamam lazım.
Yani (combobox1) + (combobox2) + (combobox4) + (combobox3 e göre edit2) var mı böyle birşey

- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Hatayı tırnaklar düzgün bir şekilde açılıp kapatılmadığı için alıyorsun. Bir string ifade bilindiği gibi tırnakla (') başlar ve biter.
'Deneme' gibi işin içine bu tırnağı bu bilgi içinde kullanmak istediğimizde ortalık biraz karışıyor. Aslında tırnak yazmak için çift tırnak kullanmak yeterli mesela Ali'nin gibi bir değeri yazmak için 'Ali''nin' yazmak gerekiyor. Sadece tırnak için ise '''' yazılır. Bir string ifadenin başında veya sonunda kullnımına örnek ise 'Ali''', '''nin' şeklinde görünecektir. String bilgiler görüntülerde biraz tuhaf olsada kullanımı bu şekilde olacaktır.
Bir sorgu oluşturmak biraz hamallık olsa da çok zor bir konu değildir aslında.
'Deneme' gibi işin içine bu tırnağı bu bilgi içinde kullanmak istediğimizde ortalık biraz karışıyor. Aslında tırnak yazmak için çift tırnak kullanmak yeterli mesela Ali'nin gibi bir değeri yazmak için 'Ali''nin' yazmak gerekiyor. Sadece tırnak için ise '''' yazılır. Bir string ifadenin başında veya sonunda kullnımına örnek ise 'Ali''', '''nin' şeklinde görünecektir. String bilgiler görüntülerde biraz tuhaf olsada kullanımı bu şekilde olacaktır.
Bir sorgu oluşturmak biraz hamallık olsa da çok zor bir konu değildir aslında.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
@zaxacm
Tırnak karmaşası yaşıyor olduğunda QuotedStr() fonksiyonunu kullan. Sana rahat nefes aldıracaktır. İşlevi senin için tırnak içine alınmış hali döndürmesidir.
Tırnak karmaşası yaşıyor olduğunda QuotedStr() fonksiyonunu kullan. Sana rahat nefes aldıracaktır. İşlevi senin için tırnak içine alınmış hali döndürmesidir.
Kod: Tümünü seç
fana.ADOQuery1.SQL.Add('select * from personel where cinsiyet like '
+ QuotedStr( combobox1.Text+'%' )
+ ' and isdurumu like '
+ QuotedStr( combobox2.Text+'%' )
+ ' and serturu like '
+ QuotedStr( combobox4.Text+'%' ) );