PDA

View Full Version : درست نشدن سرچ ی و ک حتی با خوندن 11-12 مطللب در این خصوص!!



resident
سه شنبه 03 شهریور 1394, 22:28 عصر
سلام.
تو دیتابیسم روی سرچ یو ک مشکل دارم.
خواستم با کد زیر ی و ک عربی رو به فارسی تغییر بدم اما انگار اعمال نشده و مشکل سرچ همچنان باقی است.


DECLARE @Table NVARCHAR(MAX),
@Col NVARCHAR(MAX),
@Schema NVARCHAR(MAX)

DECLARE Table_Cursor CURSOR
FOR

SELECT a.name, --table
b.name, --col
c.name
FROM sys.objects a,
sys.syscolumns b,
sys.schemas c
WHERE a.object_id = b.id
and a.schema_id = c.schema_id
AND a.type = 'u' --User table
AND (
b.xtype = 99 --ntext
OR b.xtype = 35 -- text
OR b.xtype = 231 --nvarchar
OR b.xtype = 167 --varchar
OR b.xtype = 175 --char
OR b.xtype = 239 --nchar
)

OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @Table,@Col,@Schema
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXEC (
'update ['+@Schema+'].[' + @Table + '] set [' + @Col +
']= REPLACE(REPLACE(CAST([' + @Col +
'] as nvarchar(max)) , NCHAR(1740), NCHAR(1610)),NCHAR(1705),NCHAR(1603)) '
)
Print 'Table: ' + @Table +' Col: '+ @Col;

FETCH NEXT FROM Table_Cursor INTO @Table,@Col,@Schema
END CLOSE Table_Cursor DEALLOCATE Table_Cursor


بعدش رفتم کولیشن دیتابیس رو به persian تغییر دادم باز هم نشد. کولیشن ستون موردنظر رو هم تغییر دادم به پرشین ، باز هم نشد.

برنامم تحت وبه.
به نظرتون چکار کنم؟!

Hello,World!!
سه شنبه 24 شهریور 1394, 13:33 عصر
سلام.
دقیقاً من هم همین مشکل رو دارم و خواستم سوال بپرسم که دیدم شما هم همین سوال رو پرسیدین ولی متاسفانه پاسخی دریافت نکردین. من همه راه حل هایی که در این زمینه پیشنهاد شده است رو امتحان کردم و تنها گذاشتن N قبل از عبارات فارسی مشکلم رو حل می کنه. خیلی از دوستان گفتن که توی نسخه های 2008r2 به بعد این مشکل کلا برطرف شده اما من در نسخه 2012 هم این مشکل رو دارم. کیبوردم هم فارسی هست و انواع collation ها رو هم امتحان کردم و هیچ کدوم جواب نداد. جالب اینه که بعضی از دوستان با سیستم عامل مشابه و ورژن مشابه اصلاً به چنین مشکلی برخورد نمی کنند. دوستان اگه کسی راه حلی برای این مشکل داره ممنون می شیم.

SabaSabouhi
چهارشنبه 25 شهریور 1394, 09:04 صبح
سلام.
دقیقاً من هم همین مشکل رو دارم و خواستم سوال بپرسم که دیدم شما هم همین سوال رو پرسیدین ولی متاسفانه پاسخی دریافت نکردین. من همه راه حل هایی که در این زمینه پیشنهاد شده است رو امتحان کردم و تنها گذاشتن N قبل از عبارات فارسی مشکلم رو حل می کنه. خیلی از دوستان گفتن که توی نسخه های 2008r2 به بعد این مشکل کلا برطرف شده اما من در نسخه 2012 هم این مشکل رو دارم. کیبوردم هم فارسی هست و انواع collation ها رو هم امتحان کردم و هیچ کدوم جواب نداد. جالب اینه که بعضی از دوستان با سیستم عامل مشابه و ورژن مشابه اصلاً به چنین مشکلی برخورد نمی کنند. دوستان اگه کسی راه حلی برای این مشکل داره ممنون می شیم.

سلام
شنیدی می‌گن یه دیوونه یه سنگ می‌اندازه تو چاه صد تا عاقل نمی‌تونن درش بیارن؟
مایکروسافت با اضافه‌ کردن «ی» و «ک» فارسی تمام این شر! رو ایجاد کرده.
به نظر من تنها راه حل اینه که ورودی‌ها رو کنترل کنی و قبل از ورود اطلاعات به دیتابیس جلوی ورود «ی» و «ک» عربی رو بگیری و تبدیلشون کنی به فارسی. ( اگه برنامه تحت وب هست )
و اگه تحت desktop برنامه می‌نویسی، نیازی به این کار نیست، کافیه keyboard تمام کاربران رو یکی کنی. بدون توجه به نوع ویندوزی که دارن همه از یک صفحه کلید استفاده کنن.
وقتی فقط یک نوع «ی» وارد دیتابیس بشه دیگه مشکل جستجو نخواهی داشت.

صبا صبوحی