PDA

View Full Version : مشکل در Query گرفتن فارسی



www2006
دوشنبه 29 آبان 1385, 19:59 عصر
سلام

در ابتدا اینو بگم که 99 درصد مطالب مربوط به مشکلاتی که درباره زبان فارسی مطرح شده ( در این سایت ) رو هم جستجو کردم و هم خوندم و مشکلاتی که داشتم رفع شده بجز این یکی :


من با فارسی وارد کردن اطلاعات مشکلی ندارم ( ویندوز رو فارسی کردم و نوع متغیر های متنی nvarchar است و collation آنها هم arabic ) ولی موقع کویری گرفتن جوابی برگردانده نمیشود ...

مثلا :

select gid from Managers
where
'مدیریت' = gname


جواب نمیدهد.
وقتی قبل از کلمه مورد جستجو N میزنم هم جواب درست را نمیگیرم ...



فقط در یک حالت جواب درست برگردانده میشود و آن هم هنگامی که فیلد مورد نظر (مثلا 'مدیریت' ) را ازخود جدول کپی کرده و بین کوتیشن های کویری paste کنم .


مشکل وقتی پیش می آید که این دستور Select را در sp استفاده میکنم و با متغیر میخواهم کویری بگیرم ...


مشکل کار به نظر شما چیست ؟

majid_afra222
دوشنبه 29 آبان 1385, 21:21 عصر
سلام

در ابتدا اینو بگم که 99 درصد مطالب مربوط به مشکلاتی که درباره زبان فارسی مطرح شده ( در این سایت ) رو هم جستجو کردم و هم خوندم و مشکلاتی که داشتم رفع شده بجز این یکی :


من با فارسی وارد کردن اطلاعات مشکلی ندارم ( ویندوز رو فارسی کردم و نوع متغیر های متنی nvarchar است و collation آنها هم arabic ) ولی موقع کویری گرفتن جوابی برگردانده نمیشود ...

مثلا :

select gid from Managers
where
'مدیریت' = gname


جواب نمیدهد.
وقتی قبل از کلمه مورد جستجو N میزنم هم جواب درست را نمیگیرم ...



فقط در یک حالت جواب درست برگردانده میشود و آن هم هنگامی که فیلد مورد نظر (مثلا 'مدیریت' ) را ازخود جدول کپی کرده و بین کوتیشن های کویری paste کنم .


مشکل وقتی پیش می آید که این دستور Select را در sp استفاده میکنم و با متغیر میخواهم کویری بگیرم ...


مشکل کار به نظر شما چیست ؟
سلام
مشکل ی و ی (ی فارسی و ی عربی که کدهاشون با هم فرق داره) هستش این دو تا همیشه مورد دار هستن، همه "ی" ها رو با "ی" جایگزین کن.

www2006
سه شنبه 30 آبان 1385, 06:50 صبح
حالا اگر کاربر یک رکورد جدید به جدول اضافه کنه ، این رکورد با 'ی' به جدول اضافه میشه در حالی که کاربر 'ی' وارد کرده ... هنگام کویری گرفتن توقع داره فیلد با 'ی' در جدول قرار گرفته باشه و جواب درست نمیگیره ...

راه حل شما : (تمام 'ی' ها را با 'ی' جایگزین کن ) : این کار را باید بعد از هر Insert تو جدول ، (با SP) انجام بدم ؟... راه دیگه ای نیست ؟؟

درضمن من تمام Collation ها رو هم به حالت Default database تغییر دادم ولی کماکان 'ی' رو با 'ی' جایگزین میکنه ...

ali1381
سه شنبه 30 آبان 1385, 07:57 صبح
شما باید در دیتابیس "ی" های یک شکل داشته باشی و وقتی هم می خوای با دیتابیس چک کنی با همون "ی" کوئری بگیری.

Kamyar.Kimiyabeigi
سه شنبه 30 آبان 1385, 08:06 صبح
باید keyboard همه کاربرانتونو یکسان کنید برای این کار یک dll هست که keyboard رو فارسی میکنه به صورت درست یعنی هر چیزی درست سر جاش هست مثل "پ" و "ژ" براتون میزارم روی همه کامپیوترهای کاربرانتون اجرا کنید نحوه نصب هم داره