View Full Version : مشکل به حرف"ي" در SQl Server 2000
ghoroghchian
چهارشنبه 07 اسفند 1387, 08:12 صبح
دوست من سلام
من توي جدولم يه فيلد با نام خانوادگي دارم.
وقتي از دستور Select استفاده ميکنم اونو بهم نشون نميده.يعني دستور
Select * from Table where Family='محمدی'
خروجي نداره!
"محمدی توی جدول هست"
وقتي کلي باهاش کلنجار رفتم فهميدم که اگر توي مقدار اون فيلد حرف<ي>باشه تا قبل از اونو بهم نشون ميده يعني دستور
select * from Table where Family like '%محمد'
جواب ميده.
خلاصه کلام با حرف <ي>مشکل دارم.
البته Collaction Name پايگاه دادم Arabic_CI_AC هست یا یه همچین چیزی.
ايا ربطي به هم داره يا نه؟
اصولا بايد Collaction Name چي باشه؟
ممنون
linux
چهارشنبه 07 اسفند 1387, 11:35 صبح
دوست من سلام
من توي جدولم يه فيلد با نام خانوادگي دارم.
وقتي از دستور Select استفاده ميکنم اونو بهم نشون نميده.يعني دستور
Select * from Table where Family='محمدی' خروجي نداره!
"محمدی توی جدول هست"
وقتي کلي باهاش کلنجار رفتم فهميدم که اگر توي مقدار اون فيلد حرف<ي>باشه تا قبل از اونو بهم نشون ميده يعني دستور
select * from Table where Family like '%محمد'جواب ميده.
خلاصه کلام با حرف <ي>مشکل دارم.
البته Collaction Name پايگاه دادم Arabic_CI_AC هست یا یه همچین چیزی.
ايا ربطي به هم داره يا نه؟
اصولا بايد Collaction Name چي باشه؟
ممنون
همه ي ها را به ی تبدیل کن خوب
anubis_ir
چهارشنبه 07 اسفند 1387, 12:34 عصر
جستجو (http://www.google.com/search?q=%D9%85%D8%B4%D9%83%D9%84+%D9%8A+%D9%88+%D 9%83&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a) قبل از پرسش
EffatBandehlou
شنبه 10 اسفند 1387, 14:08 عصر
دوست عزيز collation زير رو امتحان كن
Arabic_CI_AI_KS_WS
در ضمن براي اينكه به اينجور مشكلات برنخوري دامنه select تو وسيعتر كن.
Select * From Table Where Family like'%محمد%'
ghoroghchian
چهارشنبه 28 اسفند 1387, 08:50 صبح
دوستان سلام
خودم مشكلشو فهميدم
اگه نوع Nvarchar باشه با اين مشكلات رو برو ميشين
اما اگه نوع varchar باشه شما هر نوع "ي" يا "ی" كه وارد كنيد به صورت "ي ذخيره ميشه
چه توي C# و چه توي SQL
anubis_ir
چهارشنبه 28 اسفند 1387, 10:16 صبح
البته اگر collation شما عربي باشد. در غير اينصورت فقط ???? در ديتابيس ذخيره ميشود.
mina.net
چهارشنبه 28 اسفند 1387, 15:10 عصر
این کد رو امتحان کن درست می شه
select *from table where familly=N'محمدی'
siavash_realy
دوشنبه 03 فروردین 1388, 00:07 صبح
خيلي وقت ها كه چاره جز استفاده از nvarchar نداري يك راه امن و مطمئن اينه كه يك اسكريپت ويندوزي بنويسي كه كار زير رو انجام بده. اگر وقت كردم بعدن واست مينويسم و ميزارم اينجا :
بايد همه كامپيوترهايي كه كار ورود اطلاعات انجام ميدن تنظيمات ويندوز زر رو داشته باشن :
control panel > regional & language options > Advanced > Select Farsi from combo box و گزينه apply all رو هم علامت بزن ، اينطوري همه ي ها به جاي عربي (با دو نقطه زير)به صورت فارسي ذخيره ميشن و وقتي ي ها درست و همشكل ذخيره شن تو پايگاه داده ات ديگه مشكل چندگانگي ي رو نداري
zoofa
دوشنبه 10 فروردین 1388, 23:36 عصر
سلام دوست عزيز
ويندوزي كه من دارم xp است و روش فارسي ساز نصب شده است
تنظيمات regional and language options فارسي است اما ي ها را با زير نقطه مي گذارد كه همان ي عربي است. در ويستا هم چك كردم ي را بدون زير نقطه و ي فارسي مي نويسد.
من دارم يك برنامه مي نويسم كه روي شبكه كار مي كند و اين ي ها ممكن است در سيستم هاي مختلف متفاوت باشد و موقع ثبت در بانك ممكن است هر 2 مدل ي ثبت شود كه در كوري مشكل پيش مي آيد و نتايج را درست نمي آورد و موجب دردسر است
مي خواستم ببينم آيا راه حلي وجود دارد كه در هنگامي كه كاربر اطلاعات را از سيستم وارد مي كند هر دو مدل ي فارسي و ي عربي تبديل به يك ي (ي فارسي) شود و در بانك ذخيره شود تا بعداً مشكل پيش نيايد.
يا بطور اتوماتيك بانك sql server 2005 را طوري تنظيم كرد كه فقط ي فارسي ذخيره كند.
اين مشكل ي و حرف ك (حرف ك هم عربي و فارسي اش فرق مي كند ولي بقيه حروف يكي است) مشكل تمام برنامه نويسان است.
آيا مي شود راه حل جامعي ارائه داد تا اين مشكل برطرف شود؟
با تشكر
Mrs.Net
یک شنبه 30 فروردین 1388, 10:48 صبح
واقعا راه حلی نداره؟
من از داخل خود sql server که مینویسم با ی فارسی مینویسه و ذخیره میکنه
اما وقتی تو برنامه ی خودم که از یونیکد استفاده میکنه مینویسم با ی عربی مینویسه!!!!!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.