Arama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
isahin474650
Üye
Mesajlar: 28
Kayıt: 22 Eki 2017 11:05

Arama

Mesaj gönderen isahin474650 »

Merhaba iyi akşamlar öncelikle sql Server veri tabanı kullanıyorum veri tabanına birleşen olarak adotable kullanıyorum bunun bir sıkıntısı olurmu bana ilerde
1 sorum bu
2. Sorum
Ben adotable bağlantısıyla arama yapmak istiyorum

Stok kodu,stok adı,oemkodu, vb birçok alanda arama yapmak istiyorum yani bir adet edit1 birin içine yazdığımda bütün kolonları taramasını istiyorum
Büyük küçük haf duyarlık olacak nasıl yazarsam yazım arasın

Örnek

Baskı balata diye stok var kodu da 7t16-7540-aa

Balata yazsam o stok bulunsun
7540 yazsam stok bulunsun istiyorum
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Arama

Mesaj gönderen ertank »

Merhaba,

1) TAdoTable kullanmakta bir sorun olmayacaktır. Yıllardır mevcut olan bir bileşen.
2) Bu soru ile ilgili aynı tablo üzerinde arama yapmak yerine bir liste ekranı açarak seçilen kayda konumlanmak daha faydalı olacaktır.

Öneri 2A) Aşağıdaki örnek SQL cümlesine stok tablosunda "primary key" alanı da ekleyerek çalıştırabilir, listede seçilen satırdaki "primary key" bilgisini kullanarak AdoTable üzerinde ilgili kayda erişmeniz mümkün.

Kod: Tümünü seç

SELECT StokKodu,StokAdi,OemKodu  
FROM STOK_TABLO_ADI
WHERE 
   FREETEXT(StokKodu, 'aranacak kelime(ler)')  OR
   FREETEXT(StokAdi, 'aranacak kelime(ler)') OR
   FREETEXT(OemKodu, 'aranacak kelime(ler)')
Yukarıda dikkat ederseniz 'aranacak kelime(ler)' ifadesini birden fazla kez kullanıyoruz. Bu ifadeyi sürekli yazmak yerine SQL içinde parametre kullanaran bir defa değer olarak vermeniz yeterli olacaktır.

NOT1: Örnek verilen SQL cümlesini çalıştırabilmek için ilgili tablonuzda "Full-Text Index" tanımlamanız gerekir.
NOT2: Full-Text Index oluşturduktan sonra SQL server full-text servisinin de çalıştığından emin olmalısınız.

Öneri 2B) Aşağıdaki örnek SQL cümlesine stok tablosunda "primary key" alanı da ekleyerek çalıştırabilir, listede seçilen satırdaki "primary key" bilgisini kullanarak AdoTable üzerinde ilgili kayda erişmeniz mümkün.

Kod: Tümünü seç

SELECT StokKodu,StokAdi,OemKodu  
FROM STOK_TABLO_ADI
WHERE 
   StokKodu like '%aranacak kelime(ler)%'  OR
   StokAdi like '%aranacak kelime(ler)%') OR
   OemKodu like '%aranacak kelime(ler)%'
Yukarıdaki SQL ile ilgili dikkat edilmesi gereken nokta, SQL Server kurulumu sırasında COLLATION olarak büyük küçük harf duyarlı olmayan bir COLLATION seçilmiş olmasıdır. Aksi halde SQL komutu büyük küçük harf ayrımı yapacaktır. Eğer SQL Server özellikleri içinde "Server Collation" karşısında "Turkish_CI_AS" okuyor iseniz bu ifadedeki "CI" Case-Insensitive (büyük küçük harf aynı kabul edilsin. Ayırd edilmesin) anlamına gelir ve örnek SQL komutu direk olarak kullanılabilir.

Bu noktada database sunucu üzerinde çalışan her bir database istenir ise farklı COLLATION ile oluşturulabileceği için database collation bilgisini de kontrol etmekte fayda vardır.
Cevapla