كنت دائماً أقوم بتصليح و ضغط قاعدة بيانات Access بواسطة ADO القديم في VB6 بواسطة DATA BASE Endine و هو أمر مهم لأن قاعدة البيانات قد تصبح ضخمة و بطيئة بعد فترة قصيرة من الإستعمال المكثف لها , لكنني لم أجد أي طريقة لفعل ذلك عبر ADO.NET , و بحثت عن Procedure مبيتة ما (كما هو في SQL Server) لفعل ذلك دون فائدة , فهل يملك أحدكم فكرة حول كيفية فعل ذلك ؟
تصليح و ضغط قواعد بيانات Access بواسطة Ado.NET
في المثال يتضح المقال
شكراً لك .
ولكن هذه الطريقة كنت قد طبقتها و لكنها لم تعجبني (كما أنه لم تعجب المشاركين الأخرين) لأنني أضطر لإستخدام الـ ADO القديم المعتمد على Com لذا فقد كنت أبحث عن طريقة أخرى !
السلام عليكم
وما المشكلة فى استخدام كائن COM فى كثير من البرامج نلجأ الى استخدام unmanged code
لحل بعض المشاكل والتى لا يمكن تطبيقها فى اطار العمل
توجد طريقة اخرى ولكنى اجدها غير مجدية فاللاستثناءات نصيبها فى الظهور
System.Diagnostics.Process.Start( "C:\Program Files\Microsoft Office\Office10\msaccess.exe", "C:\MyDB.mdb /compact C:\MyDBCompact.mdb")
VB.NET and C# Comparison
http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

انا استخدمت تقريبا نفس الكود هذا في 2003 واشتغل معايا تمام بس مع 2005 بيعطي رسالة خطأ
وفعلا نطلب حل اخر :)
<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>
اقتباسانا استخدمت تقريبا نفس الكود هذا في 2003 واشتغل معايا تمام بس مع 2005 بيعطي رسالة خطأ
لم اجربه معvb.net2005 ممكن توضحلنا الخطأ الى صار معك
VB.NET and C# Comparison
http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

ألخطأ في السطر
objJRO.GetType().InvokeMember("CompactDatabase", System.Reflection.BindingFlags.InvokeMethod, Nothing, objJRO, oParams)
<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>
المشكلة يا أخي أنني لا أريد الى مشكلة تسجيل عناصر Com في الـ Registry , حيث أن التخلص من هذه المشكلة في ال.NET كانت من أكثر الأشياء التي أعجيتني , لأن البرامج التي أبنيها يحدث فيها تكرار كثير لذا أستخدم الكثير من الـ Controls و Dll's في براماجي !
لذا لا أريد الرجوع الى هذه المشكلة التي أرقتني !
طيب من سيفيدنا في هذا المجال؟
<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>
أظن أنه ليس هناك طريقة في Ado.net مباشرة حيث أن مايكروسوفت تصب كامل تركيزها في برمجة SQL Server عبر ADo و تهمل Access مع أنه من غير المنطقي إستخدام السيرفير في برامج صغير وحيدة المستخدم !
هناك مشكلة
عندما تكون متصل بقاعدة البيانات access ويكون الملف الذي بامتداد ldb موجود لايمكن ضغط قاعدة البيانات
وانا استخدم الاتصال المتصل فكيف الحل؟
سويت conn.close
ولكن لا فائدة
<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>
هذا الموضوع مغلق.
