PDA

View Full Version : مشکل تاریخ شمسی اراکل



mmm7512
چهارشنبه 21 فروردین 1387, 16:11 عصر
چند تا مشکل در رابطه با ورود تاریخ شمسی در اراکل فرم 6i که پایگاه داده آن 9i می باشد وجود دارد:
یکی اینکه اراکل با اولین روز اولین ماه کلیه سال ها مشکل دارد. لازم به ذکر است که فیلد من از نوع Date می باشد. مثلا با ورود 13650101 یا 13860101 و انتخاب کلید TAB تبدیل به ######### می شود.
دوم اینکه اراکل با سال های کبیسه مشکل دارد یعنی با ورود هر تاریخی و انتخاب کلید TAB یک روز از تاریخ کاسته می گردد مثلا با ورود 13850512 و انتخاب کلید TAb تبدیل به 13850511 می شود.
آیا راه حلی برای این مشکل وجود دارد؟

abbasegold
جمعه 23 فروردین 1387, 08:44 صبح
اوراکل تاریخ شمسی را پشتیبانی می کند، برای این امر باید چند کار انجام داد :
1- وارد Windows Registry شده و مسیر Oracle Home شوید، این مسیر برای Oracle 11g به ترتیب زیر است :


HKEY_LOCAL_MACHINE/Software/Oracle/Key_oraDb11g_home1

در صورتی که از Version های دیگر اوراکل استفاده می نمائید مسیر مقداری تفاوت دارد.


سپس باید دو مقدار رشته ای بسازید، یکی با نام NLS_CALENDAR و مقدار Persian و دیگری با نام NLS_DATE_FORMAT و مقدار YYYY/MM/DD hh24:mi


حال از رجیستری خارج شده و یک بار سیستم را Restart کنید تا تغییرات اعمال شود.


حال شما می توانید مقدار فیلد Date را بصورت شمسی Insert کنید ، اوراکل آن را به میلادی تبدیل کرده و نگهداری میکند و هر زمان که آن را Select کنید دوباره تاریخ را به شمسی تبدیل نموده و به شما می دهد.


اگر در خصوص Insert ، Select و یا موارد دیگر سوال داشتید، بفرمائید تا پاسخ دهم.

mmm7512
شنبه 31 فروردین 1387, 13:58 عصر
سلام،
Setting هایی که ذکر کردین من قبلا انجام دادم ولی تمام تاریخ های شمسی درست است فقط مشکل همان هایی است که ذکر کردم لطفا در آن موارد راهنمایی بفرمائید.

با تشکر

mahbod
چهارشنبه 06 خرداد 1388, 19:19 عصر
با سلام
احتمالا شما برای آیتم خود formar mask استفاده کرده اید(99"/"99"/"9999)
که اگر اینطور است باید اگر فیلد تاریخ شما در دیتابیس 8 رقمی است آیتم تاریخ در برنامه را با max length برابر 10 درنظر بگیرید تا درست شود.