Table ile arama yapmak için alan isimlerini dışardan girmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Table ile arama yapmak için alan isimlerini dışardan girmek

Mesaj gönderen izmirlikemal »

Merhabalar...
Benim geliştirmekde olduğum bir projede arama işlemini aşağıda belirttiğim gibi yapmak istiyorum.
ara:=Table1.Locate('Adı;Soyadı;Sinif',varArrayOf([Edit1.Text,Edit2.Text,Edit3.text]),[]);
Benim yapmak istediğin değişiklik ise:
Table1 örneğin Table2 gibi farklı bir db uzantılı paradox dosyası olsun. Bu durumda Table1 de gösterdiğim Adı,Soyadı ve Sinif alanları değişecek.
İşte burada ben elle girdiğim bu alanları table2 nin Field tablosundan almak istiyorum.
Biraz daha açarsam her table nin alan isimlerini aşağıda belirttiğim gibi;
ara:=Table2.Locate('AlanAdi1;AlanAdi2;AlanAdi3',varArrayOf([Edit4.Text,Edit5.Text,Edit5.text]),[]);
yukarıdaki AlanAdi1, AlanAdi2, AlanAdi3 olan alan isimlerini Table2.GetFieldNames. (2. noktadan sonrasındaki kodları bilmiyorum) den alarak
AlanAdi1 , AlanAdi2, AlanAdi3, ... yerine koymak istiyorum.
Bana yardımcı olacak arkadaşlarıma teşekkür ediyorum.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Table ile arama yapmak için alan isimlerini dışardan gir

Mesaj gönderen freeman35 »

Locate dediğin bir function dır, alan adlarını gönderdiğin parametredir ve string tipindedir, bir string değişken oluştur ve tırnak içine yazdığın şekilde field isimleri ekle ve o değişkeni kullan, uğraşacağın yer ise VarArrayOf, bu da aynı, dışarıda bir değişken oluştur, içine değerleri ekle ve o oluşturduğun değişkeni parametre kısmına ekle
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: Table ile arama yapmak için alan isimlerini dışardan gir

Mesaj gönderen izmirlikemal »

freeman35 teşekkür ederim. Önerini deneyeceğim.
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: Table ile arama yapmak için alan isimlerini dışardan gir

Mesaj gönderen izmirlikemal »

Sayın Freeman35 önerini denedim ama başarılı olamadım. Sanırım sorunumu tam anlatamamışım.
Şimdi resimlerle anlatmaya çalışayım;
Aşağıdaki kodlar örnek amaçlıdır.
ara:=Table1.Locate(A1;A2;A3;digerleri',varArrayOf([Edit1.Text,Edit2.Text,Edit3.text]),[]);

Benim Table1 verisinin içeriği
http://s4.postimg.org/8dxfs2ym5/Ekran_Al_nt_s.png
yukardaki resimde görüldüğü gibi.

A1 , A2, A3 veya diğerleri
Bu A1 A2 ve A3 değişkenlerine KuruTermometre, İzafiNem ve YasTermometre alanisimlerini Table1.GetFieldNames kodu ile veya aynı işi gören başka bir kodla aktarmak
istiyorum.
Bu alanları aktardığımda;
ara:=Table1.Locate(A1;A2;A3;digerleri',varArrayOf([Edit1.Text,Edit2.Text,Edit3.text]),[]); satırı

ara:=Table1.Locate(KuruTermometre;IzafiNem;YasTermometre',varArrayOf([Edit1.Text,Edit2.Text,Edit3.text]),[]); satırı gibi çalışsın istiyorum.
Sanırım bu sefer sorunumu açıklayabilmişimdir.
Teşekkür ederim.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Table ile arama yapmak için alan isimlerini dışardan gir

Mesaj gönderen freeman35 »

F:string;
...
f:=Table1.Fields[x].fieldname + ';' + Table1.Fields[y].fieldname.......
ara:=Table1.Locate(F, varArrayOf([Edit1.Text,Edit2.Text,Edit3.text]),[]);
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: Table ile arama yapmak için alan isimlerini dışardan gir

Mesaj gönderen izmirlikemal »

Değerli Dostum Freeman35
Verdiğiniz kod bütünlüğü ile sorunumu çözdüm.
Size çok teşekkür ederim.
Cevapla