PDA

View Full Version : سرچ در ديتابيس



ASedJavad
چهارشنبه 25 اردیبهشت 1387, 18:57 عصر
سلام
من يه بانك اطلاعاتي دارم كه توش متن يه سري سخنرانيه.
حالا من براش يه قابليت سرچ كلمه اي گذاشتم ولي يه مشكلي داره.
فرض كنيد مي خوايم كلمه تهجد رو توش سرچ كنيم.
مثلا توي يه تكست باكس مي نويسيم تهجد و دكمه سرچ رو مي زنيم.
حالا برنامه مي ره تمام سخنراني هايي كه توش كلمه تهجد وجود داره رو پيدا مي كنه....


ولي...
مشكل اينجاست كه ...

ممكنه تو متن سخنراني، كلمه به صورت تهجّد، تَهَجد، تهجُّد، يا يه چيزي تو اين مايه ها باشه.

به نظر شما من بايد چه كار كنم كه برنامه بتونه اينا رو هم پيدا كنه؟

vahidm
چهارشنبه 25 اردیبهشت 1387, 21:34 عصر
با سلام شما می تونید بر اساس چندین فیلد جستجو کنید
data1.recordsource="select * from [نام جدول] where [نام فیلد] like '"+text1.text+"' "* and [نام فیلد] like '"+text2text+"' "*
data1.refresh
dbgrid1.refresh

vahidm
چهارشنبه 25 اردیبهشت 1387, 21:34 عصر
ببخشید دوست عزیز برعکسه خودت زحمتش رو بکش
ببخشید

vahidm
چهارشنبه 25 اردیبهشت 1387, 21:35 عصر
دوست عزیز ببخشید کلماتتون ثابته یا این که ممکنه فرق داشته باشه ؟؟؟؟
ببخشید

ASedJavad
یک شنبه 29 اردیبهشت 1387, 15:22 عصر
سلام
مطمئني كه منظور من رو فهميدي؟
من كه نمي دونم چه كلمه اي قراره سرچ بشه واين كلمه چه حالاتي رو مي تونه داشته باشه...

ASKaffash
یک شنبه 29 اردیبهشت 1387, 16:46 عصر
با سلام
دوست عزیز هر حرف 3 حالت داره پس شما یک تابع شبیه ساز مثل ذیل میتوانید بنویسید:

Create Function Hosh(@P nVarChar(1000))
Returns nVarChar(1000)
As
Begin
Return Replace(@P,'رزژ','XXX')
End

vbhamed
یک شنبه 29 اردیبهشت 1387, 17:02 عصر
سلام

فكر مي كنم راحت ترين راه اينه كه يك بانك دوم داشته باشي و علامت هاي فتحه و كسره و ... رو تو اون حذف كني و جستجو رو تو اون انجام بدي و معادل ركوردش رو از اينجا نشون بدي

ASedJavad
دوشنبه 30 اردیبهشت 1387, 11:58 صبح
سلام


با سلام
دوست عزیز هر حرف 3 حالت داره پس شما یک تابع شبیه ساز مثل ذیل میتوانید بنویسید:

Create Function Hosh(@P nVarChar(1000))
Returns nVarChar(1000)
As
Begin
Return Replace(@P,'رزژ','XXX')
End

ميشه يه خورده توضيح بدي؟
اين تابعت برا من خيلي گنگ بود...
در ضمن هر حرف بيشتر از سه حالت داره: بدون علامت، فتحه، كسره، ضمه، تشديد، تشديد با فتحه، تشديد با ضمه، و ...


فكر مي كنم راحت ترين راه اينه كه يك بانك دوم داشته باشي و علامت هاي فتحه و كسره و ... رو تو اون حذف كني و جستجو رو تو اون انجام بدي و معادل ركوردش رو از اينجا نشون بديفرض كن ديتابيس من 400 مگ حجم داشته باشه، حالا بخوام يه ديتا بيس ديگه هم ازش بسازم، ديگه رو يه سي دي كه جا نمي شه. (البته مي شه موقع نصب، ديتا بيس دومي رو ساخت و لي خب ....)
كسي راه ديگه اي به ذهنش نمي رسه؟