View Full Version : نوشتن ؟؟؟؟ به جای متن های فارسی در بانک
ssjssj
پنج شنبه 08 فروردین 1387, 22:09 عصر
سلام
توی بانک sql server من وقتی که با vb.net یه رکورد جدید Insert می کنم ... بعضی از فیلدهای فارسی درست وارد میشن ولی بعضی دیگه از فیلدها به صورت ؟؟؟؟ نمایش داده می شن ....
از دوستان کسی میدونه دلیلش چیه ؟ و من چه کار باید انجام بدم تا درست شه ؟
متشــکر
Amir_Safideh
جمعه 09 فروردین 1387, 00:15 صبح
خوب نوع فیلد رو اگر از نوع Char یا VarChar گرفتی نوع فیلد رو به nchar یا nvarchar تغییر بده تا مقادیر زبانهای مختلف رو حفظ کنه .
-------------
موفق باشید.
majidrad
یک شنبه 11 فروردین 1387, 07:33 صبح
دوست گرامی به جهت حل شدن مشکل شما باید درهنگام تعریف کردن دیتا بیس collation را از حالت پیش فرض خارج کرده و عبارت ARABIC_CI_AS را انتخاب نمایید تا کلیه فونت های فارسی را که به صورت علامت ؟ حمایت نماید.
mojniknam
یک شنبه 11 فروردین 1387, 18:35 عصر
دوست گرامی به جهت حل شدن مشکل شما باید درهنگام تعریف کردن دیتا بیس collation را از حالت پیش فرض خارج کرده و عبارت ARABIC_CI_AS را انتخاب نمایید تا کلیه فونت های فارسی را که به صورت علامت ؟ حمایت نماید.
منم همچین مشکلی دارم
من تو asp.net2 برنامه نویسی میکنم...
میشه بیشتر در این مورد توضیح بدین؟
mojniknam
یک شنبه 11 فروردین 1387, 18:36 عصر
خوب نوع فیلد رو اگر از نوع Char یا VarChar گرفتی نوع فیلد رو به nchar یا nvarchar تغییر بده تا مقادیر زبانهای مختلف رو حفظ کنه .
-------------
موفق باشید.
من همیشه از nvarchar استفاده میکنم ولی باز این مشکل رو دارم
mojniknam
یک شنبه 11 فروردین 1387, 19:33 عصر
این تاپیک که حل نشده....
Amir_Safideh
دوشنبه 12 فروردین 1387, 00:19 صبح
من همیشه از nvarchar استفاده میکنم ولی باز این مشکل رو دارم
در زمان ایجاد دیتابیس در همون ویزارد ایجاد دیتابیس یه گزینه ای هست به نام Collation Name که میتونید انتخاب کنید که شما در دیتابیس غیر از زبان انگلیسی از چه زبان دیگه ای استفاده میکنید . این یک روش که در این روش فقط یک زبان غیر از زبان انگلیسی قابل انتخاب هست .
راه حل دیگه اینه که نوع داده رو از نوع nchar یا nvarchar بگیرید که در این صورت تا اونجا که من میدونم میتونید اطلاعات رشته ای زبانهای مختلف رو در دیتابیس ذخیره کنید ولی یه مشکلی که این روش داره اینه که هر کاراکتر دوبرابر حالت عادی فضا اشغال میکنه .
خوب اگر شما اینکارها رو انجام دادید و همچنان مشکل دارید فکر میکنم مشکل از جای دیگه ای باشه نه از دیتابیس .
---------------
موفق باشید .
masoodp666
دوشنبه 12 فروردین 1387, 11:44 صبح
در زمان ایجاد دیتابیس در همون ویزارد ایجاد دیتابیس یه گزینه ای هست به نام Collection Name که میتونید انتخاب کنید که شما در دیتابیس غیر از زبان انگلیسی از چه زبان دیگه ای استفاده میکنید . این یک روش که در این روش فقط یک زبان غیر از زبان انگلیسی قابل انتخاب هست .
راه حل دیگه اینه که نوع داده رو از نوع nchar یا nvarchar بگیرید که در این صورت تا اونجا که من میدونم میتونید اطلاعات رشته ای زبانهای مختلف رو در دیتابیس ذخیره کنید ولی یه مشکلی که این روش داره اینه که هر کاراکتر دوبرابر حالت عادی فضا اشغال میکنه .
من در زمان نصب server collation رو روی Arabic تنظیم کردم ولی الان collation رو Latin نشون میده !!
و از اونجاییکه استفاده از nvarchar دو برابر فضا اشغال میکنه (توی بانکهای بزرگ خودشو نشون میده) الان که SQL نصب شده چطو میشه server collation رو تغییر داد ؟
Amir_Safideh
دوشنبه 12 فروردین 1387, 12:36 عصر
الان که SQL نصب شده چطو میشه server collation رو تغییر داد ؟
شما هر جدولی رو که در اس کیو ال طراحی میکنید در پائین صفحه Design Table (یعنی در پائین همون صفحه ای که فیلدها رو تعریف میکنید)یک سری آیتمها برای تنظیمات ویژه قرار داره . اگر نوع فیلد شما از نوع رشته باشه خاصیت Collation فعال میشه و میتونید حالت مورد نظر خودتون رو در اونجا انتخاب کنید و دیگه لازم نیست نگران این مسئله باشید .
----------------
موفق باشید .
Amir_Safideh
دوشنبه 12 فروردین 1387, 13:17 عصر
این تغییرات روی کل table اعمال میشه یا باید روی یه فیلد اعمال کنیم؟
هر فیلد به صورت جداگانه باید تنظیم بشه . البته اگر واقعا نیاز باشه .
mojniknam
دوشنبه 12 فروردین 1387, 13:23 عصر
هر فیلد به صورت جداگانه باید تنظیم بشه . البته اگر واقعا نیاز باشه .
شما هر جدولی رو که در اس کیو ال طراحی میکنید در پائین صفحه Design Table (یعنی در پائین همون صفحه ای که فیلدها رو تعریف میکنید)یک سری آیتمها برای تنظیمات ویژه قرار داره . اگر نوع فیلد شما از نوع رشته باشه خاصیت Collation فعال میشه و میتونید حالت مورد نظر خودتون رو در اونجا انتخاب کنید و دیگه لازم نیست نگران این مسئله باشید .
----------------
موفق باشید .
من نگاه کردم دیدم بصورت پیشفرض Arabic بوده... ضمن اینکه تنظیمات دیگه ای هم داشت مثل:
Binery Sort
BIN2
Dictionary Sort
ولی همانطور که گفتم از اول هم
Windows Collation=Arabic
بود
البته یه نکته دیگه اینکه حروف فارسی رو مینویسه ولی اعداد رو علامت سوال میزنه
مثلا دوشنبه ؟؟ فروردین ؟؟؟؟
el_abdollahi
دوشنبه 12 فروردین 1387, 19:32 عصر
هر فیلد به صورت جداگانه باید تنظیم بشه . البته اگر واقعا نیاز باشه .
میتونی برای صرف وقت کمتر اول بانک رو generate script کنی بعد هر جا collation=latin بود رو با collation=arabic جایگزین کنی و بعد اون رو اجرا کنی.
mojniknam
دوشنبه 12 فروردین 1387, 20:20 عصر
میتونی برای صرف وقت کمتر اول بانک رو generate script کنی بعد هر جا collation=latin بود رو با collation=arabic جایگزین کنی و بعد اون رو اجرا کنی.
فکر کنم اشتباه متوجه شدین
منظورم این بود که فیلد من collation=arabic هست ولی اعداد بصورت ؟؟؟ در میان... فارسی مشکلی نداره ، فقط اعداد
masoodp666
چهارشنبه 14 فروردین 1387, 22:01 عصر
هر فیلد به صورت جداگانه باید تنظیم بشه . البته اگر واقعا نیاز باشه .
می خواستم ببینم نمیشه Collation یه بانک رو یا کل SQL رو برای تمام بانکها به صورت همیشگی تغییر داد بدون نصب مجدد ؟
mojniknam
یک شنبه 18 فروردین 1387, 17:59 عصر
متاسفانه هنوز جواب نگرفتم
من collation=arabic کردم تا حدودی دست شد و حروف فارسی درست شد
ولی مشکل دیگه ای که بوجود آمد این بود که اعداد تبدیل ؟؟؟ شد
Reza Safa
یک شنبه 26 خرداد 1387, 16:51 عصر
دوستان من هر دو حال را استفاده کردم اما باز داره به صورت علامت سوال نشون میده ایراد از کجاست
لطفا کمک کنید
morteza_261
یک شنبه 26 خرداد 1387, 23:53 عصر
سلام
این کدی که مینویسم مربوط به vb.net هست و با این کد مشکلت حل میشه زبانهای دیگه رو...
در vb.net نیازی به اون کارا نیست فقط فیلدهای جدول رو از نوع Nvarchar تعریف کن و
قبل از اضافه کردن داده به جدول یه N نا قابل بزارید مشکل حله(البته برای من که جواب داده چند جای دیگه هم دیدم)اینم یه مثال:
"UPDATE TblStudent SET Fname =N'" & TxtFName.Text & "'"
mojniknam
سه شنبه 28 خرداد 1387, 11:10 صبح
به جدول یه N نا قابل بزارید مشکل حله
خوب این N مگه ذخیره نمیشه؟؟
morteza_261
سه شنبه 28 خرداد 1387, 23:52 عصر
خوب این N مگه ذخیره نمیشه؟؟
با سلام
نه دوست عزیز،توی vb.net2005 من با همبن روش کار میکنم و داده ها با زبان فارسی رو به sql میفرستم،شما هم امتحان کن جواب میده:لبخندساده:
MShirzadi
چهارشنبه 29 خرداد 1387, 01:51 صبح
دوستان علی رغم توصیه های زیادی که می شه ولی بازم دوستان زحمت می کشن و بدون اینکه یه Search کنن میان تاپیک میزنن.
من خودم به شخصه 2 بار در دو تاپیگ متفاوت این مساله را توضیح دادم که با یک Search ساده دیگر نیازی به این همه بحث نبود(البته این بحث ها باعت یاد گرفتن خیلی ها می شه من هدفم از بین این مساله سرفا سریعتر به جواب رسیدن شما بود)
در پابان هم بگم که دوستم آقا مرتضی کاملا درست می فرمایند با قرار دادن یک N در ابتدای متن می شه این مشکل رو حل کرد.
البته این مشکل در SQL server200 هم به همین شکل حل میشه. و من یادمه که در VB6 هم از این روش استفاده می کردم .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.