özgür arama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
EeCOMP
Üye
Mesajlar: 119
Kayıt: 13 Tem 2003 10:38
Konum: istanbul
İletişim:

özgür arama

Mesaj gönderen EeCOMP »

Selamlar aslında bu forumda bunu daha önce yazdım fakat tatmin edici bir cevap alamadığım için tekrar yazma gereksinimi hissettim istedimki tekrar burda uzun soluklu bir tartışıp şuna bir çözüm bulalım

projem şu :

şimdi bir karakol programı yazıyorum formda 20 adet dbedit var mesela bu formda bir suçlunun tüm bilgileri giriliyo saç rengi göz rengi ayakkabı numarası aklınıza ne gelirse hepsi
sonra diğer bir formda ise 20 adet edit var şimdi adam geliyo benim paramı gasp ettiler soruyosun nasıl birisiydi anlatıyo sarı saçlı mavi gözlü uzun boylu sen hemen o formda söylediği bilgileri giriyosun bu kriterlere uyan tüm suçluları listeletiyosun işte böyle birşey yapmak istiyorum
yani formdaki 20 adet editten adam hangisine yazarsa ve ne yazarsa onları baz alıcak filtreleme yapıp bilgileri bir dbgridde listeleticek
yani adam arama yaparken özgür olucak ne istersen onu ariycak işte ÖZGÜR ARAMA projem
bu konuda yardımlarınızı bekliyorum yardımlarınız için şimdiden çok teşekkürler
En son EeCOMP tarafından 10 Eyl 2004 11:20 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kainat dahi bir programdır ve şüphesiz onun bir programcısı vardır...
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

* Lütfen Mesajın ve başlığın tümünü büyük harflerle yazmayın. Büyük harflerle yazmanın net kullanıcıları arasında bağırmak anlamına geldiğini unutmayın.
Forum kurallarını lütfen okuyunuz Başlığı değiştiriniz.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

göz rengi saç rengi vs gibi şeyleri sabitleyip combobox larda sor, yoksa hem elle yazması uzun sürer hemde nasılsa gaspçı belli yakalansada mahkemey eçıkacağı yok çıksada 2-3 ay sonra serbest kalıcak, bari memurum boşa yazı yazıp durmasın :lol: ayrıca yazım hatalarındanda sonuç bulunamaz, sorgu kriterlerini comboboxlara alırsan girerkende ararkende daha kolay olur. bunlarıda ayrı table larda tutarsan istendiği zaman eklenir değişir, program daha esnek olur.

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 !!!
EeCOMP
Üye
Mesajlar: 119
Kayıt: 13 Tem 2003 10:38
Konum: istanbul
İletişim:

Mesaj gönderen EeCOMP »

zaten öyle yapıyorum comboboxlarla girdiriyorum kişi birşey yazacağı zaman ya listeden seçiyo yoksa listeye ekliyo sonra seçiyo comboboxun yanına listeden eklemesi için bir buton koydum
Kainat dahi bir programdır ve şüphesiz onun bir programcısı vardır...
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Mesaj gönderen yusuf simsek »

S.A.

kolay gelsin...
Eğer query nesnesi ile yapıyorsan belki bir fikir verebilir..Kesin çözüm olma olasılığı nedir bilemem ama :lol:

Kod: Tümünü seç

query1.close;
query1.sql.clear;
query1.sql.add(' select * from TABLO');
query1.sql.add(' where sac_rengi='''+combobox1.text+'''');
query1.sql.add(' and goz_rengi='''+combobox2.text+'''');
........
........
.........
.........
bu şeklide 20 sorgu yazmak biraz kasabilir ama 20 ayrı özellik olması sebebiyle ilk bakışta böyle bir çözüm aklıma geliyor..

Tabi alanların boş olma ihtimalleini de değerlendirmek içim COMBOBOX ları if şartı ile kontrol etmek gerekir...

Umarım bir fikir verir...

TÜM FORMUN MİRAC KANDİLİNİ TEBRİK EDERİM
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
EeCOMP
Üye
Mesajlar: 119
Kayıt: 13 Tem 2003 10:38
Konum: istanbul
İletişim:

Mesaj gönderen EeCOMP »

yusuf şimşek dediğin gibi olmaz maalesef if ile tüm controlleri kontrol etmek gerekir fakat o iş 20 ifle bitmez mesela adam hem sağ rengini hemde göz rengini girdi o zaman sql kodunda ikisinide seçmek gerekir bu şekilde belki 20 edite birden bişiler yazdı bu şekilde tüm kombinasyonları denemek gerekir
Kainat dahi bir programdır ve şüphesiz onun bir programcısı vardır...
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Ozaman direk sql cümlesi olarak ekleme bir değişken tanımla string ve dolu olan combobaxların değerlerini bu stringe ekle

yani;

Kod: Tümünü seç

var
  sql_cumle :string;
begin
  if Combobox1.itemindex>-1 then
    sql_cumle := 'saci ='+Combobox1.text;
....

end;
gibi sonra vu sql_cumle yi querynin içine add yaparsın olur biter:)
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

komboboxların neden textlerini kullanıyorsunuz ki, ya kullanıcı eski girilmişi değiştirirse ? "YEŞİl" yazılmış 3-5 kayıt yaptıktan sonra bunu YEŞİL e çevirdi diyelim noolucak ? eski kayıtları bulamazsınız. o yüzden bu sabit tanımları bir tabloya at, bunun prkey sini de master table a bağla, ozaman istendiği kadar değişsin problem olmaz. ayrıca arama yaparkenden if koymak zorundasın yani herbir kriter için bir if koyup SQL i oluştruman gerek. yada DevExpress kullanıp, onn gridindeki filtreleri kullanabilirsin. ama buda pek sağlıklı olmaz. memelekette bu kadar sabıkalı varken Quantum grid kaldırmaz bunu :P Query yazıcan mecburen

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 !!!
Kullanıcı avatarı
mepc
Üye
Mesajlar: 191
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Mesaj gönderen mepc »

freeman35 demiş ki:
uzun sürer hemde nasılsa gaspçı belli yakalansada mahkemey eçıkacağı yok çıksada 2-3 ay sonra serbest kalıcak, bari memurum boşa yazı yazıp durmasın
Gaspın Türk Ceza Kanunundaki ilgili maddesi aşağıdadır. Taktir arkadaşların
Madde 495 - (Değişik madde: 09/07/1953 - 6123/1 md.)

(Değişik fıkra: 28/09/1971 - 1490/14 md.) Her kim, menkul bir malın zilyedini veya cürüm mahallinde bulunan bir başkasını cebir ve şiddet kullanarak veya şahsen veya malen büyük bir tehlikeye düşüreceği beyanı ile tehdit ederek o malı teslime yahut o malın kendi tarafından zaptına karşı sukut etmeye mecbur kılarsa on seneden yirmi seneye kadar ağır hapis cezasına mahkum olur.
Bilgi paylaşıldıkça güzeldir.
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1526
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

şöyle bişey olabilir
global bir string e

Kod: Tümünü seç

sql = 'select * from suclu where 1 = 1' 
yazarsın.
daha sonra sorgula buttonun da

Kod: Tümünü seç

if text1.text <> "" then // sac icin
  sql = sql + ' and sac = '''' text1.text + '''';

if text2.text <> "" then // ayak no icin
  sql = sql + ' and sac = '''' text2.text + '''';

Resim

..::|YeşilMavi|::..
EeCOMP
Üye
Mesajlar: 119
Kayıt: 13 Tem 2003 10:38
Konum: istanbul
İletişim:

Mesaj gönderen EeCOMP »

selam lazio
söylediğin kod çok mantıklı geldi bana ama senin kodla yapmaya çalıştım fakat yapamadım
aşağıdaki kodu bul butonuna yazıyorum

Kod: Tümünü seç

var
sql:string;
begin
query1.sql.clear;
sql := 'select * from deneme where 1 = 1' ;
if edit1.text <> '' then
sql := sql + ' and Adi = '''' edit1.text + ''''';

query1.sql.add(sql);
query1.Open;
fakat


token not found
token : sql
line:number 1.


bu hatayı veriyo

acaba bunu nasıl çözebilirim aslında sql yeni yeni öğreniyorum belki de kolay birşeyden dolayı hata veriyo ama ben bir türlü çözemedim
şimdiden çok teşekkürler
Kainat dahi bir programdır ve şüphesiz onun bir programcısı vardır...
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Mesaj gönderen yusuf simsek »

S.A.

Kod: Tümünü seç

sql := sql + ' and Adi = '''' edit1.text + '''''; 
satırında hata var gibi geliyor bana...

Kod: Tümünü seç

sql := sql + ' and Adi = '''+edit1.text +''''; 
bu şekilde deneyebilirmisin..

Kolay gelsin..
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Kod: Tümünü seç

var
sql_str:string;
begin
sql := '';
query1.sql.clear;
query1.sql.ADD('select * from deneme');
if trim(edit1.text) <> '' then sql_str := sql_str + 'Adi = :Adi_';

if trim(SQL_str)<>''then  sql_str := 'where ' + sql_str;
query1.sql.add(sql_str);
query1.prepare;
if trim(edit1.text)<>''then query1.parambyname('Adi_').assting := edit1.text;
query1.Open; 
başbakanlıktan cumhurbaşkalığına bilmiyenler için söyliyeyim arada bir sokak vardır, bir evrak 8 ayda gitmez.
Onuda bi tarafa bırakın hadi bu yasada suç değil diyelim. kanun maddesini unuttum, türk parasını koruma yasası olması lazım, Türk bir vatandaşa yabancı para birimi ile satış yapamazsınız ama bakınız herhangi bir dandik gazete ilanı. dahada iğrenci eğer aslı varsa yeni türk lirasında republic of turkey yazıyomuş. daha ne diyeyim.
kanun koyucu sıfatına haiz millet vekilleridir değilmi buna sadece onlar yetkilidir. Meclis doktoru TV de belgesiyle gösterdi millet vekili karısına prostat ameliyatı yaptırtmış ve bunun için bilmem ne kadar para almış. bilmiyenler için söyliyeyim prostat sadece erkeklerde olabilir. umarım o doktorun sağlığı yerindedir çünkü yayın yarıda kesildi araya reklam girdi ve doktordan haber çıkmadı bir daha, eğer yanılmıyorsam atv idi ve ali kırcaydı. ama emin değilim. bu konu uzar gider böyle.

sayın @mepc kanunda yazıyor olabilir buuygulanmıyorsa, bu uygulanmıyor demek herkezin hakkıdır :) bunu söylemek değil uygulamakla yükümlü olanların uygulamaması suçtur, üstelikte bunu uygulamak için para alırlarken.

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 !!!
Kullanıcı avatarı
recepgalip
Üye
Mesajlar: 60
Kayıt: 12 Haz 2003 04:50
Konum: Mersin/Rize
İletişim:

Mesaj gönderen recepgalip »

S.A.
ya belki aşağıdaklerin benzeri olacak ama bi de ben bi cevap yazayım dedim.

var
a1,a2,a3......a20 kadar değişken tanımla

if combobox20.itemindex=0 then a1:='' else a1:=' AND SAC_RENGI='+combobox1.tex;

if combobox20.itemindex=0 then a2:='' else a2:=' AND GOz_RENGI='+combobox2.tex;

-----------------
------------

if combobox20.itemindex=0 then a20:='' else a20:=' AND BOY='+combobox20.tex;

'select * from bilgiler where 1=1'+a1+a2+a3......+a20
ALLAH NAMINA VER.. ALLAH NAMINA AL.. ALLAH NAMINA BAŞLA.. ALLAH NAMINA İŞLE VESSELAM
SAYGILARIMLA BEN...
Kullanıcı avatarı
recepgalip
Üye
Mesajlar: 60
Kayıt: 12 Haz 2003 04:50
Konum: Mersin/Rize
İletişim:

Mesaj gönderen recepgalip »

ya kususra bakmayın bi şey unuttum değişkenler string olacak :oops:
ALLAH NAMINA VER.. ALLAH NAMINA AL.. ALLAH NAMINA BAŞLA.. ALLAH NAMINA İŞLE VESSELAM
SAYGILARIMLA BEN...
Cevapla