PDA

View Full Version : مقاله: راههای جلوگیری از تخریب فایلهای Access



nabeel
دوشنبه 16 دی 1387, 10:20 صبح
ضمن سلام

در این سلسله مقالات قصد دارم شما رو با یکی از معضلاتی که فایلهای Access با اون دست به گریبان هستند و بعضاً ایجاد مشکلات غیر قابل جبرانی می کنند , آشنا کنم .

مساله تخریب فایلهای Access , مشکلی بوده که همه کاربرا مطمئناً کم و بیش همه با اون سر و کار داشتن و دارن .

این مشکل عملاً یکی از معضلاتی هست که همیشه Access اونو با خودش حمل میکرده .

در این میون میخوام کمک کنم که شما هم به عنوان کاربر برنامه بیکار نشینید و فقط نقش یک ناظر رو بازی نکنید . آستینها رو بالا بزنید و در رفع این مشکل Access , به کمک اون بیاید .

یک همکاری دو طرفه و مسالمت آمیز مطمئناً در نهایت کفه سود رو به سمت شما سنگینی میده .

تذکر : در این مقالات صحبتی از نرم افزارهای Recovery به عمل نمیاد چرا که اونها عملاً به عنوان نوش داروی بعد از مرگ سهراب عمل میکنن .

میخوایم به تمهیدات قبل از طوفان بپردازیم . پس اگه دوستان خواستن نظری بدن لطفاً فقط و فقط حول محور اصلی بحث باشه تا به این وسیله مقاله به یه مقاله تخصصی تبدیل بشه .

( توضیح : من یه چند روزی رو دارم میرم مسافرت , در اولین فرصت مطالب رو آماده میکنم و به تدریج روی سایت قرار میدم )

پس تا زمان ارائه مقالات , خوش باشید و مسرو

Mahsa Hatefi
دوشنبه 16 دی 1387, 17:05 عصر
با سلام به استاد بزرگوار

از اينكه اين مسئله مهم را مطرح كرديد از شما سپاسگزارم . خدمتتان عرض كنم من دو مرتبه با چنين مشكلي مواجه شدم كه متاسفانه هيچ كس هم نتوانست كمكي بكند . اگر سرچ كرده باشيد تاپيكي در اين مورد هم بود كه چندين نفر اعلام فرموده بودند كه مشكل مشابهي دارند و قادر به حل آن هم نبوده اند .
از اين رو من تصميم گرفتم كه توي برنامه هام يه پروسه ذخيره خودكار از جداول به هنگام ورود و به هنگام خروج به نام تاريخ و ساعت بصورت زيپ شده در پوشه اي در پوشه برنامه ، نگهداري شود تا اگر ديگر كاربرم با چنين مشكلي مواجه شد اطلاعات زيادي از دست ندهد .
اما منبا اين مشكل مهم را نتوانستم پيدا كنم كه چطور چنين اتفاقي مي افتد .
تصوير خطا را هم مي توانيد در زير مشاهده بفرماييد .

موفق باشيد

nabeel
پنج شنبه 19 دی 1387, 14:03 عصر
ضمن سلام به حضور دوستان

تخریب ( Corruption ) در موقعی رخ میده که ساختار باینری فایل به هم بریزه .

در این حالت یا فایل به صورت کامل غیر قابل استفاده میشه و یا اینکه به صورت رندوم خطاهایی رو با خودش به همراه میاره .

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

این امر میتونه خیلی خطرناک باشه . چرا که خطاها به مرور افزایش پیدا میکنن و به در گذر زمان به خطاهایی جدی تر و خطرناک تر تبدیل میشن . تا جایی که عملاً بازیابی رو غیر ممکن و یا بسیار سخت میکنن , که حتی در حالت دوم هم نباید به بازیافت 100% فایل امیدوار باشید .

در اینجا به بررسی برخی موارد که میتونه منجر به تخریب فایل بشه میپردازیم :

نقص در سخت افزار :

عمده نقص سخت افزاری رو میشه در هارد دیسک و کارت شبکه جستجو کرد .

یک هارد بد سکتور بیشتر از هر سخت افزار دیگه ای علاقه منده که فایل شما رو با نقص مواجه کنه . کارت شبکه ای هم که در بخش ارسال Packet ها با اشکال مواجه باشه میتونه در صورتی که فایل شما از طریق شبکه به اشتراک گذاشته شده , اون رو با خطراتی جدی مواجه کنه .
متاسفانه Jet Database به Crash سیستم بسیار حساس بوده و کوچکترین خطایی رو در این بخش به سادگی از کنارش نمیگذره .
Jet بر مبنای file-system کار میکنه و عملاً هر گونه Crash , منجر به توقف در عملیات نوشتن و خوندن توسط اون میشه .
( یکی از مزیتهای SQL Server و یا سیستمهای مبتی بر Client Server در همین بخشه )

تداخل نرم افزاری :

استفاده از Add-Ins ها و ActiveX هایی که از ساختار طراحی دقیقی برخوردار نیستند واجرای اونها با خطا مواجه میشه , میتونه در تخریب خود فایل اکسس نقش موثری داشته باشه .
به خاطر داشته باشید که اونها همون فضایی رو از حافظه استفاد میکنن که Access به اونها اختصاص داده , پس نقص در اونها , منجر به نقص در خود Access هم میشه .

تداخل بین نسخه های مختلف JET :

خود JET دارای نسخه های متفاوتی هستش و به مرور مورد بازبینی و تکمیل قرار گرفته . به اشتراک گذاری یک فایل بین سیستمهایی که دارای نسخه های متفاوتی از JET هستند میتونه منجر به تخریب جزئی تا کلی در فایل بشه .

دسترسی چند گانه به فایل :

JET یک سیستم مبتی بر فایل میباشد ( بر خلاف SQL Sever که بر اساس Client-Server است )
JET جهت استفاده چند کاربر از یک فایل , از یک فایل قفل استفاده میکنه تا بدین وسیله بتونه هماهنگی لازم رو در هنگام نوشتن و خوندن اعمال کنه .
در هنگام اجرای فایل در داخل شبکه با توجه به بار ترافیکی شبکه در صورت ارسال پیغام Time Out از سوی شبکه , دستور در حالت معلق باقی میمونه . در اینگونه موارد فایل نیاز به Repair داره که متاسفانه در اغلب موارد این کار به درستی به انجام نمیرسه .
تا حد امکان از به اشتراک گذاری یک فایل بین چند کاربر , جداً خودداری کنید . در صورت الزام , حتماً اون رو در حالت Front End و Back End طراحی کنید

باگهای موجود در Access و JET

مطمئناً محصولات Microsoft هم خالی از نقص نیستند . بسیاری از خطاها پس از عرضه محصول به بازار آشکار میشه . عمده ترین دلیل عرضه Service Pack ها هم همین آشکار شدن نقائص موجود در داخل برنامه ها هستش .

طراحی ناقص و بی کفایت برنامه

در حالت استفاده از یک فایل در شبکه نیاز به تغییراتی در روال طراحی وجود داره که عملاً در صورت عدم توجه به اونها میتونیم پتانسیل تخریب فایل رو تا حد زیادی بالا ببریم .


قطع برق

قطع برق یکی از مواردی هستش که فایلهای Access به اون خیلی حساسن . خاموش کردن کامپیوتر بدون بستن فایل هم میتونه به همون اندازه مشکل ساز بوده باشه .

کمبود فضا بر روی Hard

در صورتی که فایل اکسس در هنگام اجرا با کمبود فضا مواجه بشه , این امر میتونه فایل رو در معرض یک خطر جدی قرار بده .

خب با این توضیحات میریم سراغ بحث دوم

راههای جلوگیری از تخریب :

نصب آخرین Service Pack و Hotfix ها جهت Access و JET

گزینه Name AutoCorrect رو غیر فعال کنید . این امکان اضافه شده به Access از همون ابتدا در کنار مزایای نسبی خودش مشکلاتی رو هم به همراه آورد .
این امکان هنوز در مراحل تکمیل قرار داره . موجب کاهش کارایی میشه و در تخریب فایل دست داره .

در داخل Subform های مبتنی بر Query اقدام به مخفی کردن فیلدهای مرتبط با foreign key ها نمایید

هرگز به صورت همزمان چند توسعه گر اقدام به تغییر و طراحی یک فایل نکنند

هرگز اقدام به ویرایش کدهای برنامه در هنگام اجرای اون نکنید

از کنار اولین خطای به نمایش در اومده از سوی اکسس به سادگی نگذرید . شاید این آخرین شانس شما برای Backup گیری , Compile , Compact و یا Repair نمودن فایل بوده باشه

اگه فایل Access دچار مشکل شد اجازه Repair اتوماتیک رو به اون ندید ( معمولاً اقدام به نمایش یک کادر در این خصوص میکنه ) , فایل ldb موجود در کنار فایل اصلی رو پاک کنید . از فایل اصلی یه کپی بگیرید و مجدداً اون رو باز و Compact/Repair رو اجرا کنید
در کدهای برنامه , هر آبجکتی رو که باز میکنید مجدداً ببندیدش . به طور مثال در مورد OpenRecordset ها , حتماً پس از اتمام کار اونها رو Close کنید

فراخوانی توابع API رو با دقت انجام بدید . روالهای کنترل خطای اونها در دست Access نیست .

فایل رو در دو بخش ایجاد کنید , اطلاعات و جداول در داخل یک فایل و مابقی آبجکتها در داخل فایلی دیگه

فایل رو در فرمت MDE تحویل بدید

تا وقتی که الزامی وجود نداره گزینه Record-Level Locking رو در حالت عدم انتخاب قرار بدید

تذکر :


هیچ پیشگیری موثر تر از تهیه نسخه پشتیبان نیست . تهیه نسخه پشتیبان رو یکی از اصلی ترین وظایف روزانه خودتون قرار بدید


در تاپیکهای بعدی سعی میکنم که بعضی از سرفصلهای اشاره شده رو باز تر کنم تا قابل درک تر باشن .


موفق باشید



موفق باشید

nabeel
جمعه 20 دی 1387, 10:23 صبح
با سلام

در این بخش میخوام به لزوم طراحی برنامه در حالت Front End / Back End اشاره کنم

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

عملاً در حالت استفاده اشتراکی از یک فایل توسط چند کاربر به صورت همزمان , استفاده از این شیوه الزامیه .

این شیوه طراحی دو مزیت اصلی زیر رو داره :

- امکان سرویس دهی و تغییرات آتی برنامه رو به سهولت امکان پذیر میکنه
- به علت جدا بودن اطلاعات از اینترفیس ( فرمها و گزارشها و مابقی آبجکتها ) , بار ترافیکی روی شبکه به طرز چشمگیری کاهش پیدا میکنه . این امر باعث کاهش خطاهای Time Out میشه و ضمناً اطلاعات در حالت محفوظ تری باقی میمونن .

در اینگونه حالات در صورت بروز نقص در فایل در %90 مواقع مشکل به سادگی با جایگزینی Front End برنامه حل میشه .

اکسس دارای یک Add-In داخلی جهت انجام این کار و جداسازی اطلاعات هستش , شما میتونید به اون در داخل مسیر زیر دسترسی پیدا کنید :


Tools | Database Utilities | Database Splitter

موفق باشید

nabeel
جمعه 20 دی 1387, 20:06 عصر
سلام

در ادامه بحث Name AutoCorrect رو بیشتر باز میکنم

این امکان جدید اولین بار در Access 2000 به اون اضافه شد .

در نسخه های قبلی در صورت تغییر در نام یک فیلد موجود در جدول , شما مجبور بودید در هرجایی که نامی از اون فیلد برده شده ( پرس و جوها , فرمها و ... ) بود به صورت دستی تغییرات رو بدید ولی این امکان نورسیده Access به شما این امکان رو میده که این پروسه به صورت خودکار به انجام برسه !!

ولی واقعیت اینکه که Name AutoCorrect بیشتر جنبه تبلیغاتی داره ( لااقل تا نسخه 2003 اون ) . در بسیاری از مواقع تغییرات رو به صورت کامل اعمال نمیکنه و همچنان رد پایی از عدم تغییر رو به جا میذاره .
همین امر باعث میشه که شما عملاً نتونید کل پروسه تغییر رو به اون بسپورید و به ناچار باید خودتون هم وارد عمل بشید !!
گو اینکه این امکان گنجونده شده عملاً فاقد هیچگونه کنترلی در بخش کد نویسیهای انجام شده هستش . یعنی اگه در بخشی از کدهای برنامه به نامی قبل از تغییر اشاره کرده باشید , اکسس هیچگونه تغییری رو در داخل کدهای ارجاع داده شده به اون پس از تغییر نامش , به انجام نمی رسونه .

متاسفانه ردپاهای غلطی که این امکان در پشت برنامه به جا میذاره , پتانسیل برنامه رو برای تخریب تا حد زیادی بالا میبره .

قبل از شروع طراحی این گزینه رو در حالت غیر فعال قرار بدید و عطای اون رو به لقاش ببخشید .

توجه کنید : قبل از شروع طراحی باید اینکار رو انجام داده باشید

در صورتی که فایلی رو قبلاً طراحی کردید , یه فایل جدید ایجاد کنید , Name AutoCorrect رو در داخل اون غیر فعال کنید و کلیه آبجکتهای موجود در داخل فایل اول رو به داخل فایل دوم Import کنید , فایل رو Compact/Repair کنید و به طراحی ادامه بدید .

توصیه : در این خصوص هیچ پیشگیری بهتر از صرف دقت بیشتر در طراحی اولیه نیست

محل این گزینه در داخل مسیر زیر هستش


Tools | Options | General

موفق باشید

e601
جمعه 20 دی 1387, 21:33 عصر
سلام نبیل جان
خسته نباشید

اگه ممکنه در مورد زیر یکم بیشتر توضیح بدید

متاسفانه ردپاهای غلطی که این امکان در پشت برنامه به جا میذاره , پتانسیل برنامه رو برای تخریب تا حد زیادی بالا میبره .
قبل از شروع طراحی این گزینه رو در حالت غیر فعال قرار بدید و عطای اون رو به لقاش ببخشید .

چرا نباید از این گزینه استفاده کنیم؟ به هر حال در صورتی که احتیاج به تغییری در بخشهایی که گفتید داشته باشیم ناگزیر به اصلاح اونها هستیم. چرا قسمتی از اینکار رو قابلیت مذکور انجام نده؟!!!

nabeel
جمعه 20 دی 1387, 21:56 عصر
با سلام

ببینید من عرض کردم که قابل اطمینان نیست . حتی اون بخشهایی رو هم که تغییر داده بهتره که مورد بازبینی قرار بگیره ! تا احیاناً خطایی به جا نمونده باشه . اگه پروسه تغییر صد درصد اثر بخش بود , بحثی وجود نداشت ولی وقتی که توی انجام کار ابهام و شک وجود داره و شما در نهایت باید خودتون مجدداً هم موارد رو چک کنید با توجه به همین موضوع توصیه کردم که , از استفاده اون صرف نظر کنید .

من تنها به ارائه چند تا از رفرنسهایی که روی سایت رسمی خود شرکت مایکروسافت به مشکلاتی که به نوعی با این گزینه در ارتباط بودن اشاره میکنم .

امیدوارم که جوابگو بوده باشه .


http://support.microsoft.com/?id=230741
http://support.microsoft.com/?id=230723
http://support.microsoft.com/?id=322794
http://support.microsoft.com/?id=282322
http://support.microsoft.com/?id=200600

البته روی سایت Microsoft نمونه های زیادی در این خصوص وجود داره .

موفق باشید

nabeel
شنبه 28 دی 1387, 21:37 عصر
سلام به حضور دوستان عزیز

در اینجا سعی میشه به بعضی راههای تشخیص یک فایل تخریب شده اشاره بشه

- در صورتی که فایل رو در داخل شبکه اجرا میکنید , اون رو از روی کامپیوتر خودتون تست کنید . اگه بدون مشکل به کار ادامه داد , مشکل ناشی از نقص موجود در شبکه شماست . معمولاً ریشه این نقص رو میتونید در داخل کارت شبکه پیدا کنید
- فایل رو بر روی دستگاه دیگه ای تست کنید . در صورتی که بدون مشکل کارکرد , مشکل میتونه مربوط به تداخل نرم افزاری پیش اومده با نرم افزاری که اخیراً نصب کردید باشه و یا نقص مرتبط با اختلال بوجود اومده در سخت افزار شما باشه ( به طور مثال بد سکتور شدن هارد دیسک شما )
- لیست پیغامهای خطا رو مطابق با چک لیست زیر بررسی کنید


Unrecognized Database Format

مطمئن بشید که در حال استفاده از نسخه مناسبی از Access هستید . فایلهای کمپایل شده در نسخه های بالاتر توسط نسخه های پایینتر باز نمیشن


This database is in an unrecognized format

ریشه این نقص نیز مشابه مورد بالایی هستش


Enter password prompt

در صورتی که قبلاً رمز عبوری برای فایلتون در نظر نگرفتید , در هنگام باز کردن فایل برنامه از شما درخواست رمز عبور میکنه ( در این حالت ابتدا با ابزارهای کشف رمز سعی کنید که رمز اون رو پیدا کنید )


The Microsoft Jet Database Engine cannot open the file

Jet database engine از تغییر اطلاعات سر باز میزنه و اعلام میکنه که یک کاربر دیگه در حال تغییر همون اطلاعاته , در حالی که شما تنها کاربری هستید که در حال کار با برنامه اید


AOIndex is not an index in this table

This database is in an unexpected state; Microsoft Access can't open it

این پیغام میتونه در حالتی ایجاد بشه که شما از داخل منوی Tools اقدام به Compact/Repair فایلتون نکرده باشید ( استفاده از روش DAO )


You do not have the necessary permissions to open this object. Please contact your system administrator.

مشاهده پیغام بالا در هنگامی که User Level Security فعال نشده باشه


Microsoft Access has encountered a problem and needs to close. We are sorry for the inconvenience.


Unexpected error 35012

نقص در شبکه


This object needs a newer version of the Microsoft Jet database module

قبل از اینکه به این ننتیجه برسید که فایل تخریب شده از نصب آخرین Service Pack مطمئن بشید


Operation failed - too many indexes - reduce the number and try again

هنگ کردن Access در هنگام باز کردن یک فایل


The instruction at "0x????????" referenced memory at "0x????????". The memory could not be 'written'
هر نوع Add-Ins نصب شده رو از حالت نصب خارج کنید


The Visual Basic for Applications Project in this database Is Corrupt


The Microsoft Jet Database Engine could not find object Msys*/databases


Could not find field '***'

Invalid Bookmark

پاک شدن اطلاعات موجود در جداول به صورت رندوم

نمایش #DELETED# در هنگامی که فایل به صورت چند کاربره مورد استفاده واقع نشده

توضیح : مواردی که با رنگ قرمز متمایز شدن , به نقائصی با شدت تخریب بالا اشاره میکنن . این نقصائص میتونن تا حد از دست رفتن کلی فایل هم جلو رفته باشن . در صورتی که حجم فایل زیاد باشه باید بخت و اقبال بلندی داشته باشید تا فایل به صورت کامل Recover بشه ! ( البته اگه Recover بشه )



یادآوری

همیشه از فایلهای مهم خودتون BackUp بگیرید . هیچ روشی موثر تر و ساده تر از این روش نیست


تا مبحثی دیگه خدا نگهدار

nabeel
شنبه 05 بهمن 1387, 19:39 عصر
با سلامی دوباره

در بخش آخر این مبحث اشاره ای دارم به برخی روشها که میتونه به شما در اصلاح فایل تخریب شده کمک کنه .

- از فایل تخریب شده خودتون نسخه پشتیبان تهیه کنید

متاسفانه بعضی ابزارهای اصلاحی موجود در بازار نتیجه خوشایندی رو به همراه ندارن , قبل از اینکه بوسیله اونها بخواید فایلتون رو اصلاح کنید حتماً یه نسخه پشتیبان از اون فایل تهیه کنید

- پاک کردن فایل ldb

اکسس در هنگام کار اقدام به ساخت فایلی با پسوند ldb و با همون نام اصلی در کنار فایل شما میکنه . در اولین قدم اون فایل رو پاک کنید . اگه به شما اجازه پاک کردن اون فایل داده نمیشه فایل شما هچنان باز مونده . در داخل Task Manager پروسه اجرایی Access رو غیر فعال کنید . اگه مشکل پابرجا بود سیستم رو Restart کنید

- سعی کنید اطلاعات رو از محل Backup قبلی به روز رسانی کنید

تخریب عملاً جزئی از ساختار اشیاء اکسس هستش یعنی اینکه آبجکت در داخل فایل اکسس آسیب میبینه . از همین رو سعی در حذف آبجکتهای معیوب ( عموماً در اکثر مواقع تنها نیاز به حذف جداول وجود داره ) داشته باشید و پس از اون مرحله آبجکتهای سالم رو از داخل BackUp قبلی گرفته شده , Import کنید

عموماً چهار روش برای جایگذاری مجدد اطلاعت وجود داره , که به ترتیب کارایی و احتمال بازنشانی موفق لیست میکنم :

حذف جداول و استفاده از Import Wizard جهت ورود اونها به داخل فایل
حذف تنها اطلاعات جدوال و وارد نمودن مجدد اطلاعات اونها ( از طریق Append Query )
حذف تنها اطلاعات جدوال و وارد نمودن مجدد اطلاعات اونها ( از طریق DAO )
حذف تنها اطلاعات جدوال و وارد نمودن مجدد اطلاعات اونها ( از طریق ADO )

- استفاده از Compact/Repair

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

- استفاده از Microsoft Jet Compact Utility

این ابزار جهت اصلاح بعضی نقائص عمده میتونه کاربرد داشته باشه . این محصول ارائه شده از سوی مایکروسافت عملاً کارایی بیشتری از امکان گنجونده شده در داخل خود اکسس داره

میتونید اون رو از داخل مسیر زیر دریافت کنید :


Download Jetcomp (http://download.microsoft.com/download/access2000/Utility/1.0/WIN98Me/EN-US/JetCU40.exe)

اطلاعات بیشتر در خصوص این محصول رو میتونید در آدرس زیر به دست بیارید


http://support.microsoft.com/kb/273956

- کدهای VBA رو Decompile کنید

اجرای فایل اکسس در داخل کامپیوترهای دیگه که از کتابخونه های متفاوتی استفاده میکنن میتونه به کدهای VBA کمپایل شده آسیب برسونه

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


C:\Program Files\Microsoft Office\Office\MsAccess.exe /decompile C:\FileName.mdb

پس از انجام عملیات فوق , فایل رو ببندید و پس از بازکردن اون , کدهای برنامه رو مجدداً Compile کنید

در پایان در صورتی که موفق نشدید , از ابزارهای Recovery جهت انجام اینکار استفاد کنید

توضیح : ابزارهای Recovery هم معمولاً از همین تکنیکها استفاده میکنن ولیکن شما رو از پیچیدگیهای فنی اونها دور نگه میدارن

یکی از بهترین ابزارهای Recovery در این خصوص نرم افزار accessfix هستش آدرس وب سایت اون هم به شرح زیره


http://www.accessfix.com


تذکر مجدد

باور کنید هیچ راهی بهتر از تهیه نسخه پشتیبان نیست , این کار ساده رو انجام بدید تا هیچ وقت نگران از دست رفتن اطلاعاتتون نباشید


موفق باشید

khadem1386
جمعه 09 اسفند 1387, 13:02 عصر
با سلام :

مرسی از وقتی که بابت آموزش می گذارید.

من چند تا پروژه تحت وب دارم که از اکسس فقط به عنوان table و مخزن استفاده می کنه

آیا بحث در موردهای

1-Name AutoCorrect
2-Front End / Back End2


در مورد من صادق هست.

nabeel
یک شنبه 11 مرداد 1388, 22:12 عصر
آیا بحث در موردهای

1-Name AutoCorrect
2-Front End / Back End2

خیر , در اینگونه مواردی صادق نیست .

aaa_zarea
شنبه 14 شهریور 1388, 12:44 عصر
ببخشيد من يه سوال داشتم خواهشمند است در صورت امكان پاسخ من را بدهيد
من يك برنامه اكسس به صورت شبكه دارم كه از لينك جدول ها جهت شبكه استفاده كرده ام .
حال اگر برنامه اصلي من كه روي شبكه است توسط يك كاربر كه قابليت خواندن و نوشتن داره پاك بشه اطلاعات من كلا ازبين ميره . براي اين مشكل من بايد چيكار كنم.

nabeel
یک شنبه 15 شهریور 1388, 18:13 عصر
سلام aaa_zarea
گو اینکه سئوال مطرح شده ارتباطی با مقاله موجود نداره و بهتر بود در قالب یک تاپیک مجزا مطرح میشد ولی ...
نميدونم درست متوجه شدم يا نه ؟ چرا که مطلبی که در ظاهر برداشت کردم خیلی ابتدایی و به دور از ذهن خطور میکنه .
راه حلي درون سيستمي در مقابل كاربري كه نتيجه زحمات خودش رو پاك ميكنه به ذهنم نميرسه !
تنها راه تهيه نسخه پشتيبان توسط مدير سيستم به صورت روزانه درمحلي به دور از دسترس ساير كاربران هستش .
دسترسي Read/Write/Modify كه جهت كار الزاميه ، حالا اگه كاربري از اين عمليات به صورتي غير متعارف استفاده كنه !!!
دسترسي Delete در حالتي كه ديتا بيس نياز به Compact شدن داره الزاميه
ولي با تمام اين اوصاف با اتكاء به Permissions ويندوز و با توجه به شرايط پروژه تست كنيد تا به تنظيم مناسبي در اين خصوص دست پيدا كنيد . ( در این خصوص نمیتونم از راه دور کمک بیشتری داشته باشم )
توضيح : در مقاله به تكرار در خصوص تهيه نسخه پشتيبان توصيه شده ، مورد اشاره شده از سوي شما دوست گرامي از جمله موارد بسيار نادري هستش كه احتمال وقوع داره ( گو ابنكه دلايل بهتري ميشه براي پاك شدن يك فايل هم مد نظر داشت , همچون خرابی در سرور , ویروس و ... که میتونه منجر به پاک شدن فایل شما بشه , گو اینکه عملکرد کاربران شما کم خطر تر از گزینه های مورد بحث نیست !! ) وليكن راه حل قطعي و به دور از مشكل تهيه نسخه پشتيبان هستش .
شاید به درستی متوجه سئوال شما نشدم , ادامه سئوال در یک تاپیک مجزا تا یکپارچگی مقاله به هم نخوره


همیشه راه حلی سیستمی در مقابل یک مشکل غیر سیستمی وجود نداره

موفق باشید

javad490
یک شنبه 05 مهر 1388, 13:38 عصر
با سلام و تشکر از موارد ارسالی

بنده در اغلب برنامه های کاربردی دکمه ای برای تهیه نسخه پشتیبان از table های موجود در درایوی دیگر کرده ام و چون کلیه اطلاعات اصلی در tablae ها می باشد در صورت تخریب فایل مورد استفاده می توان به راحتی اطلاعات table که backup گرفته بودیم را در برنامه سالم و خام import کنیم و البته چون همیشه احتمال بروز " بد سکتور" روی هارد وجود دارد و از طرفی هارد هم یک قطعه الکترونیکی است و " طول عمر " مشخصی دارد و امکان سوختن و خرابی آن وجود دارد ، ضروری است بطور نوبه ای از اطلاعات ضروری و فایلهای اکسس در شبکه یا روی cd- dvd نسخه پشتیبان و backup جداگانه تهیه نمائیم .
مورد بعدی فعال کردن گزینه :compact and repair on close در قسمت option اکسس است که پس از هر بار بستن اتوماتیک برنامه را اصلاح و بازسازی می کند که در پیشگیری از بروز مشکل موثر می باشد.

سایت : karajjavad.ir (http://karajjavad.ir)

nabeel
یک شنبه 05 مهر 1388, 18:14 عصر
سلام javad490

ضمن تشکر از ابراز نظر شما لطفاً به این دو سئوال پاسخ بدید :
احتمالاً منظور شما طراحی در قالب FrontEnd/Back End هستش , با توجه به همین فرضیه , لطفاً در خصوص لزوم Import اطلاعات توضیح بدید ( اینکه چرا در این سبک طراحی اطلاعات رو Import میکنید )
دوباره با فرض Front End/ Back End , نحوه تاثیر گزینه compact and repair on close رو بر روی فایل اکسس توضیح بدید ( این گرینه رو بر روی کدوم یک از دو بخش برنامه فعال میکیند )

موفق باشید

mostafa_bahar
سه شنبه 28 مهر 1388, 17:40 عصر
عزیزان ببینید یک راهحل که بانک امکان تخریبش کم شه اینه که وقتی سرور را می خواهید خاموش کنید حتما برنامه در تمام سیستم ها بسته شود تا مشکل حل شود

nabeel
پنج شنبه 26 آذر 1388, 15:56 عصر
سلام

لینک بارگذاری نرم افزار OfficeFix در وبلاگ (http://npmpro.blogfa.com/) قرار داده شد .

این نرم افزار قویترین نرم افزار بازیابی فایلهای تخریب شده هستش , اگر فایلتون به کمک این نرم افزار به وضعیت قبلیش برنگشت , تقریباً با ضریب بالایی میشه گفت :

فایل شما از بین رفته !

یادآوری : تمامی نرم افزارهای بازیابی , تمام تلاش خودشون رو به کار میبرن که اطلاعات رو برگردونن , بسیاری از اونها قادر به تصحیح و بازیابی آبجکتهای دیگه یا نیستن و یا اینکه بسیار ناقص و تنها بخشی از اون رو به انجام میرسونن .

البته در مورد بعضی فایلها میشه , راه حلهایی رو به کار برد , که در داخل این نرم افزارها امکان گنجوندن اونها به صورت عمومی وجود نداره ( روش برای هر فایل با سعی و خطا همراه هستش و متغیره ) , غالباً این روشها به دلایل تجاری تنها در دست افراد معدودی باقی میمونن .

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

خصوصاً اگه بخش Main Instruction آسیب دیده باشه . که در اون حالت بازیافت فایل چیزی شبیه به معجزه خواهد بود .
این بخش معمولاً در دو حالت احتمال تخریبش شدیداً بالا میره :
1 - قطع ناگهانی برق در هنگام انجام برخی عملیات داخلی , به طور مثال در هنگام عملیات Rollback Transaction
2 - قطع ناگهانی پروسه Compact ( به هر شکلی )

موفق باشید

javad490
پنج شنبه 06 اسفند 1388, 12:22 عصر
سلام javad490

ضمن تشکر از ابراز نظر شما لطفاً به این دو سئوال پاسخ بدید :
احتمالاً منظور شما طراحی در قالب FrontEnd/Back End هستش , با توجه به همین فرضیه , لطفاً در خصوص لزوم Import اطلاعات توضیح بدید ( اینکه چرا در این سبک طراحی اطلاعات رو Import میکنید )
دوباره با فرض Front End/ Back End , نحوه تاثیر گزینه compact and repair on close رو بر روی فایل اکسس توضیح بدید ( این گرینه رو بر روی کدوم یک از دو بخش برنامه فعال میکیند )

موفق باشید

دوست عزیز منظور من از import این است که قبلا بطور نوبه ای از جداول برنامه خودمان بکاپ خروجی بگیریم و در صورت نیاز و یا تخریب اطلاعات آن جداول را مجدد import کنیم.
گزینه :compact and repair on close در قسمت option اکسس است که پس از هر بار بستن اتوماتیک برنامه را اصلاح و بازسازی می کند که در پیشگیری از بروز مشکل موثر می باشد البته این گزینه در اکسس 2003 وجود دارد و در اکسس ورژن بالاتر اطلاعی ندارم که چنین گزینه ای وجود دارد. عملکرد این گزینه باعث سرعت بیشتر برنامه اکسس و حذف فایلهای موقت و مخفی درون اکسس می شود و از طرفی با هر بار اجرا اشکالات کوچک رفع و بازسازی می شود تا این اشکالات به مرور انباشته نشود و برنامه یا اطلاعات درون آن را تخریب کند. با این اوضاع بهترین گزینه بجز موارد یاد شده تهیه backup بطور مرتب و نوبه ای از برنامه می باشد البته اگر آن برنامه برایمان آنقدر مهم باشد ارزش بکاپ گیری مرتب را هم دارد

nabeel
پنج شنبه 06 اسفند 1388, 13:26 عصر
سلام javad490
ماهی رو هر وقت از آب بگیرید تازه هستش , گو اینکه پست بنده مربطو به مهر ماه بود ولی خوب 5 ماه تاخیر هم خوبه

نگاهی به این مطب (http://barnamenevis.org/forum/showpost.php?p=917995&postcount=9)بندازید
این مطلب مرتبط با Compact On Close شماست , تخریب در سوی Data خطرناکه که عملاً در بخش Server نگهداری میشه

یکی از سبکهای کاری بنده در خصوص ایراد گرفتن به یک پاسخ , پرسیدن چند سئوال در خصوص بخشهایی از اون پاسخه , که اگر نگیم پاسخ اشتباهه , بلکه یکی از حالتهای زیر در مورد اون صادقه :
- ناقصه
- امکان پذیر نیست
-مشکله
- و یا در نهایت درست نیست
و بنده در درحقیقت با طرح سئوال قصدم اینه که به کمک خود شخص , مطلب رو بازتر کنیم
با توجه به اینکه در خصوص دو مورد عنوان شده از سوی شما , در گذشته بحث شده , لزومی درتکرار وجود نداره

موفق باشید

Zero Defect
پنج شنبه 07 مهر 1390, 12:03 عصر
ضمن سلام

جهت حصول اين نتيجه كه ، نظر سنجي موجود در داخل اين مقاله بتونه تا حدودي مورد استفاده قرار بگيره ، شايد مناسب باشه نيم نگاهي به نظرات ديگر دوستان كه در قالب آمار نظر سنجي نمايان شده داشته باشيم
در حال حاضر ( زمان درج اين مطلب ) آمار به شرح زيره :

بله - غیر قابل اصلاح بوده اند 37
بله -قابل اصلاح بوده اند به طور ناقص 24
بله -قابل اصلاح بوده اند به طور کامل 6
خیر تا کنون با این مشکل مواجه نشده ام 35

سه مورد ابتدايي رو چندان مورد بحث قرار نميديم چرا كه منطبق بر واقعياتي هستند كه در خصوص سيستمهاي مبتني بر اكسس وجود داره ، ادامه مبحث رو در خصوص گزينه چهارم نظر سنجي پيگيري ميكنيم ( نزديك به 65 درصد مويد تخريب وليكن در سه سطح متفاوت )

خیر تاکنون با این مشکل مواجه نشده ام

تعداد آمار در اين خصوص تا حدودي زياده ، كه لازم هست ميزان صحت و چند و چون اون رو مورد بررسي قرار بديم ، در همين راستا علل احتمالي امتياز دهي به اين گزينه رو تقسيم بندي ميكنيم :

حالت اول ، كسي كه كاري انجام نميده دچار هيچ خطايي هم نميشه به تبع اون ، برنامه اي كه به ندرت مورد استفاده قرار ميگيره ، شما هرگز نمي تونيد شاهد مشكلاتش باشيد

شايد اين جمله عاميانه رو شنيده باشيد ( در هنگام خريد و فروش خودرو ) : كه ماشين مال يه خانم دكتر بوده و فقط باهاش ميرفته مطب و برميگشته !

در خصوص برنامه هاي اكسس هم همين امر صادقه ، برنامه ، برنامه اي بوده كه كاربرش هر چند روز يك بار ميرفته داخلش و .... و به بياني ديگه برنامه يك برنامه كاربردي به معناي خاص اون نبوده

حالت دوم ، برنامه فاقد ساختاري پيچيده بوده

برنامه در سطحي ابتدايي طراحي و اجرا شده بر همين اساسي ميشه گفت كه برنامه چيزي براي خراب شدن نداره ( در اصطلاح عمومي يك برنامه كار راه انداز هستش تا يك برنامه كاربردي و حرفه اي )

مثالي ميزنيم در خصوص وسيله نقليه

در ابتدا بايد بپذيريم كه وسيله نقليه يك واژه عمومي بوده و از يك روروك تا يك فضاپيما رو ميتونه پوشش بده (هر يك با اهداف و ويژگيهايي متفاوت )

يك روروك ساده تشكيل شده از دو بلبرينگ و چند پروفيل كه طي عمليات جوشكاري به همديگه وصل شدن ، در واقع قطعات، اجزا و ميزان سادگي و ارتباط اونها با همديگه به گونه اي هست كه تصور خرابي در خصوص اين وسيله اندكي دشواره

ولي آيا در خصوص وسايل نقليه پيچيده تر هم وضع به همين منواله ، آيا از كنار خرابي سيستم ترمز يك اتومبيل ميشه به سادگي گذشت ( فرمواش نكنيد كه روروك به طور كامل فاقد سيستم ترمزه !! )

در اينجا ميزان تخريب و توالي تخريب تابعي مستقيم از ميزان پيچيدگي برنامه طراحي شده شما و تعداد اجزاء اونه

برنامه هاي ساده ، به سادگي دچار تخريب نميشن چرا كه هر كه بامش بيش برفش بيشتر ، برنامه هاي ساده چيزي براي خراب شدن ندارند

و حالا چرا نظر چهارم به بحث گذاشته شد ؟

اول : ريشه هاي امتياز دهي احتمالي به اين نظر درج شد ( شايد هم اشتباه برداشت شده باشه ) ، متاسفانه تعداد بالاي اون ميتونه كاربراني كه به دنبال تجزيه و تحليل نظرات نيستند ولي در كنار اون قصد دارند كه به صورت حرفه اي اكسس رو ادامه بدن ، اندكي به انحراف بكشونه

اين نظرات ميتونه حسي كاذب از امنيت بالاي اكسس در خصوص حفظ اطلاعات به شما بده كه كاملاً بر واقعيات منطبق نيست ( توضيح : اين امر منافاتي با دفاعيات قبلي بنده از اكسس نداره و نخواهد داشت )

دوم : كاربراني كه به صورت حرفه اي به دنبال اكسس هستند ، مبناي وروديهاي خودشون رو سه گزينه اول و ميزان پراكندگي اونها قرار بدن

اين سه گزينه مويد اين بخشها خواهند بود كه :

سيستم پشتيبان گيري منظم و دقيقي رو طراحي و اجرا كنيد ( در ساده ترين حالت اقدام به نصب يك نرم افزار BackUp گيري كنيد و يا فايل اطلاعات رو درپايان هر روز در داخل مكاني ديگه هم نگهداري كنيد )

از كنار خطاها به سادگي نگذريد چرا كه اگر:

توجه نكنيد ، با قطعيت جزو گروه اول خواهيد بود
اندكي تعلل كنيد ، جزو گروه دوم
به موقع وارد عمل بشيد ، جزو گروه سوم
و اگر جزء سه گروه بالا نيستيد ، ناگزير جزء گروه چهارم هستيد كه به قطع روزي در بين يكي از سه گروه فوق قرار خواهيد گرفت

در پايان ، به هر حال گروهي كه به گزينه چهارم امتياز دادند به قطع با منطق و بر اساس مدارك اين گزينه رو انتخاب كردند

چه خوبه در ادامه مبحث ، اگر راهكاري داشتند كه به واسطه اون ، فايلهاشون هرگز تخريب نشده ، به ديگران هم آموزش بدن ( از جمله بنده )

به هر حال بايد در انتظار بنشينيم تا ببينيم آيا دوستاني كه به گزينه چهارم امتياز دادند ، در صدد شفاف سازي خواهند بود ( از ديد فني و راهكارهايي كه منجر به حصول اين نتيجه شده ) و يا نه ، دو حالت مذكور در نظر دهي به گزينه چهارم دخيل بوده اند .

خدانگهدار

pmoshir
چهارشنبه 10 اسفند 1390, 17:52 عصر
با سلام
در مورد پاك كردن فايل ldb
هر بار كه اين فايل پاك ميشه با باز و بستن كردن فايل اكسس مجدد ايجاد ميشه؟
راهكار كاربردي براي پاك كردن اون چيه؟شايد اين سوال بسياري از كاربران باشه؟؟

sajjad_kochekian
چهارشنبه 20 اردیبهشت 1391, 22:45 عصر
سلام

لینک بارگذاری نرم افزار OfficeFix در وبلاگ (http://npmpro.blogfa.com/) قرار داده شد .

این نرم افزار قویترین نرم افزار بازیابی فایلهای تخریب شده هستش , اگر فایلتون به کمک این نرم افزار به وضعیت قبلیش برنگشت , تقریباً با ضریب بالایی میشه گفت :

فایل شما از بین رفته !

یادآوری : تمامی نرم افزارهای بازیابی , تمام تلاش خودشون رو به کار میبرن که اطلاعات رو برگردونن , بسیاری از اونها قادر به تصحیح و بازیابی آبجکتهای دیگه یا نیستن و یا اینکه بسیار ناقص و تنها بخشی از اون رو به انجام میرسونن .

البته در مورد بعضی فایلها میشه , راه حلهایی رو به کار برد , که در داخل این نرم افزارها امکان گنجوندن اونها به صورت عمومی وجود نداره ( روش برای هر فایل با سعی و خطا همراه هستش و متغیره ) , غالباً این روشها به دلایل تجاری تنها در دست افراد معدودی باقی میمونن .

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

خصوصاً اگه بخش Main Instruction آسیب دیده باشه . که در اون حالت بازیافت فایل چیزی شبیه به معجزه خواهد بود .
این بخش معمولاً در دو حالت احتمال تخریبش شدیداً بالا میره :
1 - قطع ناگهانی برق در هنگام انجام برخی عملیات داخلی , به طور مثال در هنگام عملیات Rollback Transaction
2 - قطع ناگهانی پروسه Compact ( به هر شکلی )

موفق باشید

دوستان کسی این نرم افزار رو با سریالش نداره.
ظاهرا این لینک این وبلاگ خراب بود
خیلی به درد سر افتادم

sajjad_kochekian
پنج شنبه 21 اردیبهشت 1391, 19:20 عصر
سلام دوست من

یک کم آستانه تحملتون رو بالاتر ببرید :لبخندساده:

سئوال رو در فروم بنده هم مطرح فرمودید , فقط باید یکی دو ساعت تحمل میکردید تا مشکل مرتفع بشه , اینجا شاید دیر به دیر بیام ولی فروم شخصیم زود به زود ( گو اینکه از همون ابتدا هم مشکلی بدین شکل که شما مطرح فرمودید وجود نداشت )

در همونجا پاسخ رو براتون ارسال کردم (http://cpsd.ir/forum/showthread.php?tid=95&pid=421#pid421)

با توجه اینکه حدس میزنم ( فقط حدس !!! ) لطفاً در خصوص اون فایلتون که تخریب شده , اینجا سئوال نپرسید

این مقاله هستش قاعدتاً توی مقاله هم کسی سئوال نمی پرسه

موفق باشید

ولی من یک مشکل دیگه هم پیدا کردم
برنامه فوق برای MDB هست و برای ADP کارایی نداشت
بابت اصلاح فایل ممنون
برای رفع مشکل ADP برنامه ای هست؟

mostafa_zamani
شنبه 21 دی 1392, 16:07 عصر
سلام علیکم
فایلهای اکسس 2010 یا 2013 چطور ند؟ آنها هم خراب می شوند ؟

New Account
دوشنبه 23 دی 1392, 18:57 عصر
ضمن سلام

دوست من mostafa_zamani

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

فرمت ذخیره سازی دیتابیس اکسس از نسخه 2007 با تغییراتی همراه شده که این تغییرات و ماحصل اونها در راستای بهبود خطا ناپذیری بوده

در مجموع چه از نظر تجربه کاری و چه بر اساس شواهد موجود ، فایلهای نسخه 2007 و به بعد پایدارتر از نسخه های قبلی هستند و کمتر با اینگونه مشکلاتی مواجه خواهند شد ( نسخه 2013 واقعا نسخه متمایزی هستش )

در مجموع تنها راهکار مطمئن برای تمام گونه های دیتابیسها ( و نه فقط اکسس ) ، ایجاد نسخه پشتیبان به صورت متوالی و مستمر هستش

موفق باشید

javad490
جمعه 25 تیر 1395, 01:05 صبح
با سلام
در مورد پاك كردن فايل ldb
هر بار كه اين فايل پاك ميشه با باز و بستن كردن فايل اكسس مجدد ايجاد ميشه؟
راهكار كاربردي براي پاك كردن اون چيه؟شايد اين سوال بسياري از كاربران باشه؟؟
از نظر من اون فایل ldb که بصورت پنهان است و با باز شدن فایل اکسس ایجاد میشه یک فایل موقت و کمکی برای نگهداری برخی اطلاعات اکسس شما می باشد که با بسته شدن اکسس اون فایل هم بسته میشه و نیازی به حذف کردنش نیست و چون تنظیمات ویندوز شما فایلهای مخفی و hidden را نمایش میده شما اون فایل ار می بینید و اگه تنظیمات ویندوز خودتون را تغییر بدهید دیگه اون فایل دیده نخواهد شد

markazeahan
دوشنبه 25 تیر 1397, 16:04 عصر
بهترین راه برای جلوگیری از تخریب فایل ها قفل کردن اوناست

تبدیل جوشی (https://www.markazeahan.com/product-category/%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%AC%D9%88%D8%B4%DB%8C/)

sheykhbahayi
یک شنبه 29 اردیبهشت 1398, 22:27 عصر
چطوری میشه اینکارو انجام داد میشه کمکم کنید لطفا

mohsenna30ri
یک شنبه 31 فروردین 1399, 09:05 صبح
با سلام
یک تجربه :لبخندساده::لبخندساده:
من یک فایل مهم داشتم که خراب شد و دیگه کار نکرد
اما یک راه حل جالب پیدا کردم که به شکرانه حل آن این راه حل را در اختیار شما قرار میدم
وقتی یک فایل اکسس در حال اجراست فایلهای کمکی در کنار خود میسازه
نمی دونم چه حالتی ایجاد میشه که یک فایل اکسس بنام database.mdb یا database.accdb در کنار فایل اصلی ساخته میشه و پس از اتمام برنامه بصورت صحیح، این فایل بصورت خودکار حذف میشه
شما میتونید در صورت خرابی فایل اصلی این فایل که دلیت شده را از روی هارد ریکاوری کنید
جهت ریکاوری از نرم افزارهای عادی موجود در اینترنت نیز میتونید استفاده کنید.
(( تو گوگل عنوان ریکاوری فایلهای دلیت شده را سرچ بزنید))
نکته: اسم دقیق فایل مذکور را نمیدونم اما یک چیزی نظیر و شبیه به اسم database هست
موفق باشید- محسن نصیری