الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حماية قوية " تدمر جميع الفورم اللى موجودة فى قاعدة البيانات"

بدأه raafatbebo في 30 مارس 2012 · 10 رد · 1,927 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
Option Compare Database

Function IsLoaded(ByVal strFormName As String) As Integer
 ' Returns True if the specified form is open in Form view or Datasheet view.

    Const conObjStateClosed = 0
    Const conDesignView = 0

    If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
        If Forms(strFormName).CurrentView <> conDesignView Then
            IsLoaded = True
        End If
    End If

End Function

هذا هو الكود ... ارجو من لديه فكرة عن تعطيل هذا الكود ووتوابعه "

مع العلم لايمكن حفظ التعديلات ... لو تمكنت من فتح قاعدة البيانات فستظهر هذه الرسالة المزعجة ...

the microsoft jet database engine stopped the process because you and another user

وبعد ذلك

is not an index in this table

... وراحت قاعدة البيانات

#2

اخي الفاضل

السلام عليكم ورحمة الله وبركاته

ضع قاعدة البيانات السليمة والتي بها الكود وسنحاول اصلاحها بإذن الله فمثل هذه الحمايات انما هي لعب اطفال ولا تستحق ان نطلق عليها حمايه قويه .

بشرط ان لا تقوم بفتح القاعدة وتدميرها ثم تطالبنا بإصلاحها نريد قاعدة بيانات سليمه فقط

بالتوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 30 مارس 2012 في 22:46

#3
zahrah كتب:

اخي الفاضل

السلام عليكم ورحمة الله وبركاته

ضع قاعدة البيانات السليمة والتي بها الكود وسنحاول اصلاحها بإذن الله فمثل هذه الحمايات انما هي لعب اطفال ولا تستحق ان نطلق عليها حمايه قويه .

بشرط ان لا تقوم بفتح القاعدة وتدميرها ثم تطالبنا بإصلاحها نريد قاعدة بيانات سليمه فقط

بالتوفيق

raafat.part1.rar

#4

الجزء الثانى

الجزء الثالث

raafat.part4.rar

تم الاجزاء الاربعة هم الملف المرغوب ...

شكرا على التواصل .. اخت زهرة

raafat.part2.rar

raafat.part3.rar

#5

اخي الفاضل : رفعت

لا يوجد في قاعدة البيانات اي حمايه مطلقا لأنني قمت بفحص القاعدة من اولها الى آخرها ولم اجد اي شيء يدل على الحماية سواء في النماذج او الماكرو اما الوحده النمطية فلا يوجد بها شيء والكود الموجود في الوحده النمطية هو خاص فقط للتأكد من ان نموذج الإفتتاحية تم تحميله ام لا وبإمكانك الإستغناء عن هذه الوحده النمطيه فلا علاقة لها لا بالحماية ولا بعطب القاعدة .

ولكن القاعدة معطوبه لعدم وجود فهرس اساسي AOIndex في احد الجداول الخاصة بالنظام لأحد الأسباب التاليه :

1. كانت القاعدة تعمل بشكل طبيعي وفجأة تم ايقافها اما بسبب توقف الكهرباء عن جهاز الكمبيوتر او تم اغلاق جهاز الكمبيوتر عمدا .

2. قد يكون ان جهاز الكمبيوتر يحمل فيروسات مما ادى الى عطل وتوقف القاعدة عند حد معين عن العمل واصبحت معلقه ولم يتم اغلاقها بشكل صحيح

عموما تم اصلاح جميع كائنات قاعدة البيانات الموجوده بها ولا يوجد بها اي مشكله

المشكله التي تم اصلاحها كانت في جداول النظام وجداول القاعدة حيث تم تغيير مسميات الجداول فقط بعد الإصلاح ولكن جميع البيانات موجوده بالكامل في الجداول بدون اي تغيير فكل ما عليك فعله هو اعادة تسمية الجداول الخاصة بك الى اسماءها القديمه لأن الإستعلامات والنماذج والتقارير معتمدة على اسماء الجداول السابقة

اما بقية كائنات القاعدة ( استعلامات - نماذج - تقارير - وحدات ماكرو - وحده نمطية ) فلم يتم تغيير اي شيء فيها بل هي كما كانت سابقا كامله بدون اي تغيير

post-15367-057174200 1333167061_thumb.gi

وهذه قاعدة بياناتك سليمه 100%

وقبل ان تقوم بتحميل الملف خذ هذه النصيحه :

حاول بقدر المستطاع كل اسبوع او اسبوعين على اقل تقدير ان تأخذ نسخة احتياطية سليمه لقاعدة البيانات فقد تحتاجها في يوما من الأيام

za-22012-FIX.rar

بالتوفيق

المرفقات
F1.gif

تم تعديل هذه المشاركة بواسطة zahrah في 31 مارس 2012 في 08:02

1
#6

بارك الله فيك أستاذتنا الفاضلة زهرة .. زادك الله علما.

اللهم لك الحمد كما ينبغى لجلال وجهك وعظيم سلطانك .. لا إله إلا أنت سبحانك أنى كنت من الظالمين

#7

شكرا لاهتمامك اخت زهرة ....

ولكن عندى طلب .... وهذا للتعلم من خبرات من لديه خبره فى هذه المشكلات....

هذه القاعدة عليها حماية خفيفة وهى التحقق من وجود بعض الملفات فى ال c وهذه انا عرفتها من بعض مواضيعك التى تحدثت فيها عن انواع الحمايه على قواعد البيانات ...

ولكن فى قاعدة البيانات هذه كان هناك نوعا أخر ولا ادرى ان كانت حماية ام لا .. ولكنها تقوم بتعطيل خاصية التعديل فى قاعدة البيانات سواء ماكرو او فورم او جدول او ميديول الخ ...

وبعد عدد من المحاولات تبيت بالفشل ... تحذف الجداول الاساسية لقاعدة البيانات وهى جداول الفهرسة كما ذكرت ... .

وبالنسبة للكود الموضوع فى المشاركة الاساسية فهو قلة خبرة منى ... وتسرع "لأنى لم أجد اى وحدة نمطية غيرة فى الميديول فبطريقة سريعة وبدون اى تفكير ادعيت انه هو الحماية المفروضة على القاعدة" وهذا خطأ جسيم منى ارجو التماس العذر لجهلى فأنى مازلت مبتدأ وأطلب العلم وسأظل هكذا .

فرجاء شرح ما هو الذى حدث فى قاعدة البيانات هذه " القصة التخيلية لها " بدون انقطاع الكهرباء ولا ولا ولا الخ .. فهذا حدث نتيجة لكود ما ...او ماكرو ... او حماية مجهورلة بالنسبة لى .

تم تعديل هذه المشاركة بواسطة raafatbebo في 31 مارس 2012 في 23:20

#8

اخي الفاضل

لقد سبق واخبرتك ان قاعدة البيانات الخاصة بك ليس عليها اي حمايه والسبب بسيط جدا

لأننا اذا اردنا عمل اي حماية على اي قاعدة بيانات فيجب ان تكون اكواد الحماية إما في النماذج مباشرة او في الوحدات النمطية وهذه غير متوفر في قاعدة بياناتك لأنني تتبعت جميع النماذج ولم اجد اي شيء يدل على اي حماية فجميعها اكواد عاديه

وايضا لزيادة التاكد من الحمايه نبحث في نموذج الإفتتاحية والذي بدوره ليس به اي حماية كل الذي موجود فيه فقط هو اغلاق النموذج وفتح نموذج القائمة الرئيسية

لذا فإن قاعدة البيانات الخاصة بك غير محمية ولكن كان يوجد بها عطب وعطل داخلي في احد فهارس جداول النظام

كيف نتعرف على هذا العطل انه هو السبب ؟؟؟

عندما تظهر لنا هذه الرساله نعرف مباشرة ان احد فهارس النظام معطوبه ويجب ايقاف قاعدة البيانات فورا حتى لا تتوقف نهائيا عن العمل ويجب اصلاح العطل مباشرة

post-15367-057171500 1333231803_thumb.gi

لذا حتى لا ادخلك في متاهات انت في غنى عنها من شروحات متقدمه فقد قمنا بإصلاح قاعدة البيانات وتم اعادتها كما كانت سابقا وبإمكانك استخدامها او استيراد الجداول من قاعدة سابقة اذا كنت تملك نسخة احتياطيه

بالتوفيق

المرفقات
H1.gif
#9
zahrah كتب:

اخي الفاضل

لقد سبق واخبرتك ان قاعدة البيانات الخاصة بك ليس عليها اي حمايه والسبب بسيط جدا

لأننا اذا اردنا عمل اي حماية على اي قاعدة بيانات فيجب ان تكون اكواد الحماية إما في النماذج مباشرة او في الوحدات النمطية وهذه غير متوفر في قاعدة بياناتك لأنني تتبعت جميع النماذج ولم اجد اي شيء يدل على اي حماية فجميعها اكواد عاديه

وايضا لزيادة التاكد من الحمايه نبحث في نموذج الإفتتاحية والذي بدوره ليس به اي حماية كل الذي موجود فيه فقط هو اغلاق النموذج وفتح نموذج القائمة الرئيسية

لذا فإن قاعدة البيانات الخاصة بك غير محمية ولكن كان يوجد بها عطب وعطل داخلي في احد فهارس جداول النظام

كيف نتعرف على هذا العطل انه هو السبب ؟؟؟

عندما تظهر لنا هذه الرساله نعرف مباشرة ان احد فهارس النظام معطوبه ويجب ايقاف قاعدة البيانات فورا حتى لا تتوقف نهائيا عن العمل ويجب اصلاح العطل مباشرة

post-15367-057171500 1333231803_thumb.gi

لذا حتى لا ادخلك في متاهات انت في غنى عنها من شروحات متقدمه فقد قمنا بإصلاح قاعدة البيانات وتم اعادتها كما كانت سابقا وبإمكانك استخدامها او استيراد الجداول من قاعدة سابقة اذا كنت تملك نسخة احتياطيه

بالتوفيق

اشكرك اخت زهرة .... لحسن ردك المقنع ولكن ليس هو ما كنت اريده .... ان تكون قاعدة البيانات سليمة ام لا .... ولكن اين هو العطب ولماذا وهل هناك احتمال بوجود حماية تسبب هذا ... وان وجدت فما هى ؟؟! وهل هناك مواضيع تتحدث عن هذا النوع من الاعطاب ... وكيفية معالجته ..

وعلى فكرة انا من النوع الذى يحب التعليم الموجّه لشيء بعينه ... :)

#10
raafatbebo كتب:

اشكرك اخت زهرة .... لحسن ردك المقنع ولكن ليس هو ما كنت اريده .... ان تكون قاعدة البيانات سليمة ام لا .... ولكن اين هو العطب ولماذا وهل هناك احتمال بوجود حماية تسبب هذا ... وان وجدت فما هى ؟؟! وهل هناك مواضيع تتحدث عن هذا النوع من الاعطاب ... وكيفية معالجته ..

وعلى فكرة انا من النوع الذى يحب التعليم الموجّه لشيء بعينه ... :)

اخي الفاضل

سبق وان اخبرتك ان العطب في قاعدة البيانات الخاصة بك هو عطب في احد فهارس جداول النظام وخاصة في هذا الجدول MSysACEs

post-15367-071078700 1333461030_thumb.gi

هذا الجدول بالذات من جداول النظام المخفيه قبل ان يتم فتح قاعدة البيانات وقبل اتخاذ اي اجراءات على قاعدة البيانات يقوم محرك قاعدة البيانات 4 The Microsoft Jet Database engine بالتأكد التام من خلو هذا الجدول من الأخطاء وانه سليم 100% فإن كان سليم وليس به اي اخطاء يتم فتح قاعدة البيانات بشكل طبيعي وان حدث ووجد محرك قواعد البيانات اي خلل في هذا الجدول فإنه يقوم بإظهار رسالة بمستوى الخلل والعطب في القاعدة فقد يكون في بعض الأحيان ان الخلل في احد فهارس الجدول او يكون الخلل شامل ولا يمكن اصلاح قاعدة البيانات او فتحها نهائيا ولهذا ندعو مثل هذا العطب والخلل بالإنهيار التام لقاعدة البيانات والتي لا ينفع معها اي اصلاح .

اما احتمالية وجود حماية تقوم بإعطاب قاعدة البيانات بالكلية فلا يوجد حماية تقوم بعمل ذلك لأن الغرض منها الحماية وليس التلف ولكن هناك اكواد واضحه وصريحه تكون موجوده في الوحدات النمطية غرضها التعرف على سلوك معين اثناء فتح قاعدة البيانات وهذه الأكواد قام مبرمج القاعدة ومن وضع الحماية عليها بأن يكون ترتيب كود الحماية نتسلسل وفقا لإجراءات معينة بحيث يتم فتح نموذج معين واذا لم يتم ذلك يقوم الكود بحذف كامل او بعض كائنات القاعدة ومثل هذه الأكواد موجوده في المنتدى وتم شرحها بالتفصيل في قسم الحمايه مع العلم تكون ظاهره لك وتراها وتستطيع ايقافها وتعطيلها . وقاعدة البيانات الخاصة بك ليس بها اي حماية من هذا النوع سواء حماية داخليه او خارجيه وإلا كنا قد رأينا مثل هذه الأكواد وبالتالي نستطيع ايقافها ولكن قاعدة بياناتك بها عطب في احد الفهارس .

اما بالنسبة للمواضيع التي تتحدث عن الأعطال والأعطاب المتقدمه فقد تحدثت عنها كثيرا في المنتدى ولا أرى لها اي فائدة لك لأنك في غنى عنها لأنها امور متقدمه تحتاج لمن لديهم خبرة طويله ودرايه تامه كيف تعمل قواعد البيانات ولكن العلم بالشيء خير من الجهل به لذا اقرأ نبذه بسيطة عن بعض الأعطال في قاعدة البيانات .

كما تعلم ان قاعدة البيانات لا تعتمد بحد ذاتها على نفسها او انها كائن مستقل عن بقية قشرة برنامج الأوفيس فنرى انها تعتمد على عدة كائنات يطول بنا المقام لسردها او شرحها بالتفصيل ولكني سأعطيك رؤوس الأقلام في هذا المجال فمن العوامل المؤثرة او بالأحرى الكائنات المؤثره على نجاح أو فشل اي قاعدة بيانات هي كما يلي :

1. الفهارس الخاصة بالقاعدة

هنا لا نقصد تحديدا الفهارس التي نقوم بعملها في الجداول ولكن الذي نقصده هو الـ Index الخاص بالقاعدة نفسها ويمكن ان نتعرف عليه ونراه جيدا في الجداول المخفيه الخاصة بنظام القاعدة لأن اي قاعدة بيانات تقوم بعملية فهرسة للكائنات الخاصة بها بواسطة ارقام ورموز كوديه لا تستطيع تغييرها وإن تم العبث بها ففي هذه الحالة سيتم تلف قاعدة البيانات وسينتج لديك ما يسمى خطأ الفهرس وتكون الرسالة بهذا الشكل " AOIndex is not an index in this table " حيث لا يمكن اعادة قاعدة البيانات الى سابق عهدها نتيجة لفقد احد الفهارس الخاصة بالقاعدة ويقصد بالجدول في الرسالة اي الجدول المخفي MSysACEs وأحد الأسباب الرئيسية لهذا الخطأ هو كثرة الضغط والإصلاح لقاعدة البيانات او انه تم اغلاق قاعدة البيانات قسرا وهي في حالة معالجة بيانات كأن يكون الكهرباء انقطع عن الكمبيوتر فجأة او ان الكمبيوتر علق ( هنق ) معاك واستخدمت مفتاح اعادة التشغيل ففي هذه الحالة كانت قاعدة البيانات في حالة معالجة وانت قمت لأي سبب بإيقاف هذه العملية قبل انتهاء المعالجة مما ادى الى فقد احد الفهارس الهامة .

ولحل هذه المشكلة اذا حدثت اما ان تنشأ قاعدة بيانات جديده وتستورد جميع كائنات القاعدة السابقة او تحاول الإستعانه بأحد برامج الإصلاح ونادرا ما يتم اصلاحها .

2. محرك قاعدة البيانات Microsoft Jet Database Engine

يوجد محركين لقاعدة البيانات وهو المحرك القديم Jet 3.5 ( يأتي مع نسخة اكسيس 97 ) والمحرك الجديد Jet 4.0 ( يأتي مع نسخة 2000 وما فوق ) فعند تلف احد هذين المحركين حسب نوع قاعدة البيانات المستخدمة فستظهر لك رسالة خطأ "Unrecognized database format" وتعني انه لم يتم التعرف على هيئة القاعدة وسيخبرك بأنه لا يستطيع فتح قاعدة البيانات "The Microsoft Jet Database Engine cannot open the file " ولحل هذه المشكلة هو تحديث محرك قاعدة البيانات بأخر جديد او عمل فورمات من جديد لكامل الويندوز حيث لا يمكن ازالته بسهوله ، ومن ثم تثبيت برنامج الأكسيس من جديد . اذا لم تقم بحل هذه المشكلة فورا فسوف تحصل على هذه الأخطاء تباعا عند تشغيل اي قاعدة بيانات :

1. Microsoft jet database engine could not find object MSysDB .

2.The Microsoft Jet database engine could not find the object MSysCompactError .

3. The Microsoft Jet database engine could not find the object 'databases'.

4. The Microsoft Jet database engine could not find the object 'filename'.

3. عطب فيجوال بيسك للتطبيقات VBA.

عندما ترى مثل هذه الرسالة "Visual Basic for Applications Project in This Database Is Corrupt" فهذا يعني انك لا تستطيع الوصول الى الأكواد الداخلية لقاعدة البيانات بسبب هذا العطل ويمكن مشاهدة اثار هذا العطل عندما تدخل الى ريجستري نظام الويندوز ثم تبحث عن الـ VBA وسترى مقدار الضرر الحاصل به طبعا اذا لم يكن لديك خبرة في التعامل مع ريجستري النظام فمن الأولى تركه حتى لا تقوم بإحداث تلف اكبر في محرر الريجستري وبهذا تفقد كامل النظام ولذا فإن الحل الوحيد هو ازالة برنامج الأكسيس كاملا واستبداله بنسخة جديده مع ترك جميع قواعد البيانات كما هي وعدم العبث بها حتى يتم اصلاح مشكلة الفيجول بيسك للتطبيقات وبعدها ستجد ان القاعدة المعطوبه في هذه النقطة قد عادت للعمل .

هناك نقطة هامة وخطيره في نفس الوقت اذا كانت قاعدة البيانات من نوع MDE وحدث لها مثل هذا العطب في مشغل الفيجول بيسك للتطبيقات فإن قاعدة البيانات MDE سوف تتحول مباشرة الى MDB ولكن مع وجود اخطاء ستظهر اثناء فتح اي كائن سواء نماذج او أي كائن من كائنات القاعدة يعتمد اساسا على الكود البرمجي الخاص بالـ VBA ولكن عندما تريد مشاهدة الأكواد الخاصة بالبرنامج لن ترى شيئا لأنه سبق وان تحولت جميع الأكواد في القاعدة عند تحويلها الى MDE الى بيانات ثنائية اما التصاميم فيمكن عرضها ورب ضارة نافعة .

4. خطأ في الكتابة الى الذاكرة

في حالة حدوث خطأ في قاعدة البيانات وتكرار الخطأ اكثر من مره ومع هذا نحاول فتحها لأكثر من مره فإنه سيأتي وقت عليها وتظهر لك هذه الرسالة "التعليمة في 0x11111111 ومرجع الذاكرة في 0x11111111. لا يمكن إعادة كتابة الذاكرة " . "The instruction at "0x11111111" referenced memory at "0x22222222". The memory could not be "written" ففي هذه الحالة يجب علينا فورا اغلاق قاعدة البيانات بطريقة سليمة ثم اغلاق برنامج الأكسيس ثم اعادة تشغيل الكمبيوتر من جديد حتى يتم افراغ الذاكره من جميع البيانات ومن ثم عمل تنظيف للبرامج العالقة في الذاكره .

5. تحول حجم بعض قواعد البايانات الى ( صفر كيلوبايت )

هذا الخطأ يعتبر من أخطر الأخطاء الذي يواجهها المستخدمين حيث انه لا يكتفي بعطب او اتلاف قاعدة بيانات واحده ولكن جميع قواعد البيانات التي تكون بنفس الإصدار فإن كانت نسخة الأكسيس لديك اصدار 2000 فسوف يقوم بتحويل حجم جميع قواعد البيانات الى ( صفر Zero كيلوبايت ) اما بقية قواعد البيانات التي عملت في اصدارات حديثة فلا تتعرض لمثل هذا الخلل فقط التي تكون بنفس اصدار برنامج الأكسيس سواء 2000 او 2002 او 2003 طبعا لا يوجد حل لهذه المشكلة سوى انك تقوم بتغيير نسخة الأكسيس الى احدث اصدار بعد ازالة الأصدار السابق تماما مع ترك جميع قواعد البيانات كما هي وبعد تثبيت النسخة الحديثه سوف تعمل معك جميع قواعد البيانات .

اتمنى انني وضحت ولو نبذه مختصره عن بعض مسببات الأخطاء التي تقوم بإعطاب واإنهيار قواعد البيانات وهناك العديد من الأخطاء ولكن السبب الرئيسي هو كثرة الضغط والإصلاح لقواعد البيانات كأن نضع مثلا امر الضغط والإصلاح عند الخروج من القاعده في كل مره فقد تتحمل قاعدة البيانات كثرة الضغط والإصلاح الى حد معين طالما ان حجم البيانات في حدود المعقول ثم تأتي لحظة وتظهر لك احد هذه الأخطاء القاتله والتي لا يمكن مع البعض منها اصلاح قاعدة البيانات لأن التلف بها اصبح كبيرا.

ان عملية الضغط والإصلاح اشبه ما تكون ( بقدر الضغط ) ففي كل مره تقوم بضغط قاعدة البيانات فإنك تزيد الضغط عليها اكثر وأكثر حتى تأتي لحظة وتتلف نهائيا .

بالتوفيق

المرفقات
T1.gif
1
#11

أخت زهرة :) اشكر فيكى من علم ... وطول بال على ايضاح المعلومة ..

أشكرك . . أشكرك ..

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…