PDA

View Full Version : مشکل در فارسی



ar_monti@
شنبه 04 آبان 1387, 14:46 عصر
سلام
من در یک صفحه ورود اطلاعات دارم که این اطلاعات در جداول Oracle ذخیره میگردند. هنگامی که تقریبا بطور همزمان حداقل 2 کاربر به صفحه ورود اطلاعات وارد میشوند و اطلاعات لازمه را پر میکنند ، این اطلاعات که فارسی هستند بصورت ??????????? در جدول مربوطه ذخیره میشود اما هنگامی که یک کابرب به تنهائی در صفحه مربوطه میباشد این مشکل را نداریم. نمیدانم برای اینکه در این صفحه فارسی درست در فیلدهای جدول ذخیره گردند چکار کنم. ممنون میشم راهنمائی کنید.

mostafa_sgh
شنبه 04 آبان 1387, 14:54 عصر
سلام دوست عزیز

این مشکل مربوط به نوع فیلد دادهای استفاده شده در دیتابیس تون میباشد.( برای کارکترهای Unicode بهتر است از نوع داده ای nvarchar استفاده کنید )

و یا به هنگام Insert داخل دستور ، رشته فارسی تون رو با ( N ) نشانه گزاری کنید .

به عنوان مثال :



insert into tblUnicode values (N'Unicode string')

یا



insert into tblUnicode values (to_nchar(@UnicodeParam))

منبع : Oracle (http://forums.oracle.com/forums/thread.jspa?threadID=376847)

ar_monti@
شنبه 04 آبان 1387, 20:28 عصر
string qCmmisrt = " INSERT INTO ADMIN.CMMISRT ( " +
" NAME, " +
" FAMILY, " +
" ID_NO, " +
" FATHER_NAME, " +
" NATI_ID, " +
" SEX, " +
" KND_CUS ) " +
" values (" +
"to_nchar('" + txtName.Text + "')," +
"to_nchar('" + txtFamily.Text + "') ,'" +
txtNo.Text + "'," +
"to_nchar('" + txtFatherName.Text + "'),'" +
txtNati_ID3.Text.Trim() +
txtNati_ID2.Text.Trim() +
txtNati_ID1.Text.Trim() + "','" +
Page.Session["pSex"].ToString() + "','" +
Page.Session["pKind_Cus"].ToString() + "')";

ar_monti@
شنبه 04 آبان 1387, 20:29 عصر
دست عزیز از to_nchar هم استفاده کردم اما باز هم نشد و هرگاه 2 یا چند نفر همزمان ورود اطلاعات میکنند این مشکل پیش می آید. نمیدونم چکار کنم.

mostafa_sgh
شنبه 04 آبان 1387, 20:53 عصر
دوست عزیز

این مقاله رو مطالعه و اجرا کنید ، فکر میکنم مشکل از تنظیمات مربوط به دیتابیس باشه .

http://www.querytool.com/help/907.htm

http://forums.oracle.com/forums/thread.jspa?messageID=1148201

svm-webmaster
شنبه 04 آبان 1387, 21:14 عصر
مشکل از تنظیمات مربوط به دیتابیس شما به وجود می آید برای رفع آن دو کار می توانید انجام دهید .
1- دیتابیس را تنظیم کنید .
2- در کدها تغیراتی ایجاد کنید.

اگر دیتابیس را تنظیم کنید نیازی به تغییر کد ها نخواهد بود ولی اگر نمی توانید در دیتابیس زبان را که به صورت پیش فرض انگلیسی است به عربی تغییر دهید که فارسی را هم بگیرد باید در کدها تغییر ایجاد کنید.

در کدها باید یک حرف N ابتدای مقدار ورودی هر فیلد قرار دهید. این کار باعث می شود نوشته های شما به صورت یونیکد و دقیقا به همان صورتی که نوشته شده است به دیتابیس وارد شود.

N'" + txtName.Text + "'
اگر خواستید به این روش عمل کنید نه تنها باید این N را در هنگام ثبت در دیتابیس بگذارید، بلکه باید در تمامی جستجو ها، update ها و حذف ها هم قرار دهید.

موفق باشید

ar_monti@
یک شنبه 05 آبان 1387, 10:49 صبح
دوستان من از حرف N هم استفاده کردم اما این دفعه نه تنها علامت ???????? چاپ کرد بلکه کلمه N را هم با آن چاپ کرد. نکته ای که اینجا است اینست که اگر فقط یک کابر در صفحه مربوطه باشد این مشکل را نداریم و حروف فارسی چاپ میشود.

ar_monti@
یک شنبه 05 آبان 1387, 15:14 عصر
خدمت دوستان عرض کنم این برنامه را ازروی ویندوز XP اجرا میکنم درست کار میکنه اما همینکه آنرا Publish میکنم و از روی آدرسش اجرا میکنم دوباره مشکل Code Page بوجود می آید.

mmnoody2006
جمعه 10 آبان 1387, 10:32 صبح
به اين يه سر بزن مشكلت حل مي شه
http://www.inasp.mihanblog.com/post/23