ورود

View Full Version : حل مشکل حروف (ک و ی) در sql 2000



mohammad-gh
یک شنبه 03 شهریور 1387, 18:57 عصر
با سلام
من در فروم جستجوی زیادی انجام دادم ولی جوابی که باید نگرفتم.
من وقتی بر اساس نامی که در آن یکی از حروف ک و ی است جستجو انجام می دهم جواب نمی دهد.
لطفا راه حلی ارئه دهید تا بتوانم از این مشکل رهایی یابم.

mostafaaa
یک شنبه 03 شهریور 1387, 19:11 عصر
SELECT Name FROM TableName WHERE Name LIKE '%ک%' OR Name LIKE '%ی%' OR Name LIKE '%و%'

mohammad-gh
دوشنبه 04 شهریور 1387, 12:49 عصر
ممنون آقا مصطفی ولی من ابتدا اطلاعات رو داخل دیتا تیبل می ریزم و بعد با یه حلقه جستجو می کنم.
حال باید کاری بکنم کخ مثلا چک کنه ببینه اسمی که وارد کرده ام قبلا در این دیتا تیبلم است یا نه ؟

reza6384
دوشنبه 04 شهریور 1387, 12:52 عصر
مشکل اینه که حروف ک و ی توی جدول unicode بیشتر از یک کد دارند. و مشکل شما اینه که کدی که حرف ک شما داره با کدی که حرف ک کوجود در Database داره متفاوته و همینطور برای حرف ی. یه فایل DLL ضمیمه میکنم. باید اونرو توی Safe Mode توی فولدر System32 جایگزین یعنی Overwrite کنین. احتمالا مشکلتون حل میشه.

Rambod
سه شنبه 05 شهریور 1387, 10:39 صبح
kbdfa مشكل رو حل نميكنه. چون بايد روي هر كامپيوتري كه برنامه رو نصب ميكنين، اين فايل رو هم نصب كنيد. براي حل اين مشكل، شما بايد در برنامتون و در هنگام ورود اطلاعات، "ي" ها رو تبديل به "ی" و "ك" ها رو تبديل به "ک" بكنيد و يا برعكس. موقع Search زدن هم همينطور.

reza6384
پنج شنبه 07 شهریور 1387, 11:38 صبح
kbdfa مشكل رو حل نميكنه. چون بايد روي هر كامپيوتري كه برنامه رو نصب ميكنين، اين فايل رو هم نصب كنيد.


بله درسته، باید روی کامپیوتر مقصد هم نصب شه.



براي حل اين مشكل، شما بايد در برنامتون و در هنگام ورود اطلاعات، "ي" ها رو تبديل به "ی" و "ك" ها رو تبديل به "ک" بكنيد و يا برعكس. موقع Search زدن هم همينطور.


به نظر شما این کار سرعت رو پایین نمیاره؟

Rambod
پنج شنبه 07 شهریور 1387, 19:37 عصر
به نظر شما این کار سرعت رو پایین نمیاره؟


نه به اون صورت. در Data Entry و در Search فقط در رشته‌هايي كه كاربر وارد كرده يك سري تغييراتي انجام ميشه و بعد عمليات Data Entry و يا Search انجام ميشه. مگر اينكه وروديت سايز بالايي داشته باشه كه اونم خيلي كم پيش مياد.
من خودم در تمام برنامه‌هاي فارسيم كه با Database سر و كار دارند اين كار رو انجام ميدم.

msh_gold
چهارشنبه 20 آذر 1387, 19:37 عصر
با سلام دوستان چطوری میشه این دو حرف رو با هم عوض کرد.

danial82
پنج شنبه 21 آذر 1387, 11:23 صبح
نه به اون صورت. در Data Entry و در Search فقط در رشته‌هايي كه كاربر وارد كرده يك سري تغييراتي انجام ميشه و بعد عمليات Data Entry و يا Search انجام ميشه. مگر اينكه وروديت سايز بالايي داشته باشه كه اونم خيلي كم پيش مياد.
من خودم در تمام برنامه‌هاي فارسيم كه با Database سر و كار دارند اين كار رو انجام ميدم.
راه حل صحیح همین است و تقریبا همه جا همین کار رو انجام میدن

برای جایگزین کردن هم میتونین از تابع Replace استفاده کنید



textBox1.Text.Replace("ی","ي");

elmira_63
سه شنبه 18 خرداد 1389, 14:14 عصر
من حدود 65000 رکورد اطلاعات توی دیتابیسم دارم دارم و نمی تونم یکی یکی این کارو انجام دارم به نظرتون چیکارکنم ؟؟

majid325
چهارشنبه 19 خرداد 1389, 08:11 صبح
یه SP بنویسید که این کار رو بکنه و تو یه ترانزاکشن اجراش کنید ولی کار جالب تر اینه که از integration services استفاده کنید.

naser2009
پنج شنبه 27 خرداد 1389, 18:09 عصر
من حدود 65000 رکورد اطلاعات توی دیتابیسم دارم دارم و نمی تونم یکی یکی این کارو انجام دارم به نظرتون چیکارکنم ؟؟
سلام دوسته من
لازم نیست داده های داخل دیتابیس رو تغییری بدین
موقعی که میخواهین جستجو کنین متن وارد شده رو تغییر بدین یا در نهایت هر دو حالت ی فارسی و ی عربی رو جستجو کنید.

naser2009
پنج شنبه 27 خرداد 1389, 18:11 عصر
یه SP بنویسید که این کار رو بکنه و تو یه ترانزاکشن اجراش کنید ولی کار جالب تر اینه که از integration services استفاده کنید.
چطوری میشه با integration services این کار رو انجام داد لطفا توضیح بدید.طرز کارشو
ممنون

se1000
پنج شنبه 13 تیر 1392, 10:56 صبح
سلام دوستان. منم مشکل شما ها رو داشتم و توی دیتابیسم نمی تونستم فیلد روز هفته ای که برابر با یکشنبه بود رو پیدا کنم . اگر قبل از کوری از N پیشوند استفاده می کردم جواب درست پیدا میشد یعنی :
select * from WeeklySchedule where StartDate<= '1391/05/15' and endDate='-' and DayOfWeek =N'یکشنبه'

اما این روش در نوشتن کوری در ویژوال استادیو جوا بنم داد و نتیجه نهایی رو پیدا نمی کرد تا امروز این راه حل رو پیدا کردم :


dataAdapter = new SqlDataAdapter(" select * from WeeklySchedule where StartDate<= '1391/05/15' and endDate='-' and DayOfWeek=@DayOfWeek",myConnectionObject);
string[] date = new string[3];
dataAdapter.SelectCommand.Parameters.AddWithValue("@DayOfWeek", DbType.String).Value = "یکشنبه";
DataTable dt = new DataTable();
dataAdapter.Fill(dt);



اینم ادرس منبع اصلی که به این سوال جواب داده بود

http://dba.stackexchange.com/questions/18822/sql-server-set-n-prefix-as-unicode-for-all-queries-by-default