1

Konu: VFP'de SQL sytax sorusu

SQL (SELECT) kullanarak VFP'de bir sorgulama yapmak istiyorum.
Birkaç gündür kazmalamama rağmen çözemedim.
Sorum şu:
Kullanıcının yazdığı bir ya da birkaç sözcükten oluşan bir arama metni ve bu metnin aranacağı 4 tablo var.  Bu tabloların herbirindeki belli field'leri birleştirip tek bir string yapıp bunun üzerinde arama metnini sorgulatmak istiyorum.
Biraz açarsam:  YORUM1 tablosundaki Y1, YORUM2 tablosundaki Y2, YORUM3 tablosundaki Y31 ve Y32 ve YORUM4 tablosundaki Y41, Y42 ve Y43 alanlarını tek bir field gibi düşünerek arama metninin bu "birleştirilmiş field"'da aranmasını sağlamak.

JOIN ile olabilir mi ama yapamadım:(


Teşekkürler..

2

Re: VFP'de SQL sytax sorusu

Ayri ayri degil de illa birlestirerek mi araman gerekiyor. Olur olmasina, sorun o degil. VFP database'de full text search yok. Herhangi bir 3. parti yazilim kullanmazsan bu is yavas olur. 3.parti yazilimlari da artik bulmak samanlikta igne bulmak gibi. Neyse, yavas ve alanlari birlestirerek ornek (VFP de buyuk kucuk ayrimi da problem - bu yorum tablolarinin arasinda bir iliski oldugunu var sayiyorum):

Visual Fox Pro
procedure AraBeni(tcAranan)

 
local aranan
aranan = '%' + upper(m.tcAranan) + '%'
 
select * from YORUM1 t1
full join YORUM2 t2 on t1.YorumId = t2.YorumId ;
full join YORUM3 t3 on t1.YorumId = t3.YorumId ;
full join YORUM4 t4 on t1.YorumId = t4.YorumId ;
where upper(t1.y1 + t2.y2 + t3.y31 + t3.y32 + t4.y41 + t4.y42 + t4.y43) like m.aranan ;
into cursor crsYavasCokYavas ;
nofilter


Bunlar niye birlesiyor ki sad Bu birlestirma isi ve y1, y41, y42 ... gibi alan adlari aklima kotu bir database tasarimini akla getiriyor (ve sanirim VFP database boyle bir is icin pek uygun bir database degil).

3

Re: VFP'de SQL sytax sorusu

Teşekkür ederim. Programı şimdi deneyeceğim.

Yaklaşık 8-9 yıl önce yazdığım bir program var. Onu değiştiremiyorum. Ama fulltext arama yapması istendi.

Design kötü olabilir. Amaç yerden tasarruf yapmak idi. Şöyle ki;
Patoloji raporlarında yorum bölümü uzunluk olarak çok değişkenlik gösterir. Kimi zaman hiç olmaz, kimi zaman bir iki sözcük, kimi zaman da destan gibi olur.
Memo kullanamam. Çünkü bildiğiniz gibi memoda her en küçük değişiklik için ayrı bir kayıt ekliyor ve eskisini siliyor. Bizde de çok sık değişiklik/düzeltme yapılır, yani her değişikliğe bir kayıt. Bu kez de memo şişecek diye düşünerek metni tablolara yaydım. Aslında bayağı zor olmuştu. Ama hız bakımından yavaş değildi.

4

Re: VFP'de SQL sytax sorusu

Valla yavas olup olmadigini bu fulltext aramayi yaptiktan sonra soyle.

Ben de 20+ sene once Fox2x ile yazdim ama patoloji raporlarini memoda tuttum. Pack Memo ile kontrol edebilirdin ancak konu VFP database olunca memoya guven olmaz ne diyeyim.