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

ضغط واصلاح قاعدة بيانات اكسس

مغلق
بدأه SOLO.NET في 29 أغسطس 2005 · 9 رد · 3,274 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

'mdwfilename=database fullpath+databasename
Public shared Sub CompactAccessDB(ByVal connectionString As String, ByVal mdwfilename As String)
		Dim oParams As Object()
		Dim objJRO As Object = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"))
		oParams = New Object() {connectionString, "Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\tempdb.mdb;Jet OLEDB:Engine Type=5"}
		objJRO.GetType().InvokeMember("CompactDatabase", System.Reflection.BindingFlags.InvokeMethod, Nothing, objJRO, oParams)
		System.IO.File.Delete(mdwfilename)
		System.IO.File.move("C:\tempdb.mdb", mdwfilename, True)
		System.Runtime.InteropServices.Marshal.ReleaseComObject(objJRO)
		objJRO = Nothing
	End Sub

تم تعديل هذه المشاركة بواسطة SOLO.NET في 12 أكتوبر 2006 في 18:03

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#3

جزاك الله خيرًا .

سبحان الله وبحمده ... سبحان الله العظيم

#4
اقتباس
System.IO.File.move("C:\tempdb.mdb", mdwfilename, True)

تعديل بسيط بس شيل البارميتر الثالث وهو true لانه غير مقبول فى الطريقة move

تم تعديل هذه المشاركة بواسطة SOLO.NET في 12 أكتوبر 2006 في 18:03

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#5

و لماذا استخدام الـ System.Reflection لإستدعاء الـ JRO.JetEngine ؟؟؟؟

يمكنك أن تقوم بإضافة Microsoft Jet and Replecation Objects 2.x Library عن طريق الـ Add Reference ثم الذهاب الى الـ COM و اختيار الملف المذكور..

حمل المثال... و هو يتطلب اضافة الملف المذكور...

CompactDatabase.zip

رأس الحكمة الإيمان بالله

#6
اقتباس
و لماذا استخدام الـ System.Reflection لإستدعاء الـ JRO.JetEngine ؟؟؟؟

الفرق انك عند اضافةMicrosoft Jet and Replecation Objects 2.x Library عن طريقAdd Reference

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

مدار 100% manged وذلك لعدم احتواءه على اى كائن com

ارجو انى اكون وضحت المسئلة :rolleyes: B)

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#7
اقتباس
وبهذا يصبح المجمع مدار 100% manged وذلك لعدم احتواءه على اى كائن com

لا يا أخي الفضل، استدعاء أي Unmanaged Code بأي وسيلة أو بأخرى لا يجعل التطبيق مداراً 100% ...

لن يستطيع الـ GC التعامل مع الجزء الخاص بإستدعاء الـ COM في كودك و من الممكن أن يحدث Memory Leak مثله مثل طريقة الـ Add reference، لأنه Unmanaged...

رأس الحكمة الإيمان بالله

#8

بسم الله الرحمن الرحيم

اود ان اعقب علي كلام اخي محمد

بالفعل كلامك مضبوط 100%

لانه لا فرق بين Make reference or Late binding

بخصوص مسالة ادارة الكود لانه في الواقع يتعامل مع UnManaged Code

و بالتالي كل ما يحدث هو عمل RCW حتي نتمكن من التعامل مع ال Com

و حتي يتمكن ال CLR من ادارة الاتصال مع ال COM من ناحية تحويل المتغيرات

و عدم اضطرار المبرمج للتركيز علي عملية التعامل مع Interfaces

سلام

حكمتي الدائمة.....................................................

ان ما عند الله لا يطلب الا بطاعته

.....................................................................

?who is Ingm

Name: Hasan Adel Hasan

Education: BCs in IS from Faculty of computers & information systems

Mansoura University- 2003

E-mail: hsn_3004@yahoo.com

#9

جزاك الله خيرا

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#10

انا جربت تبع الاستاذ سولو وزبط معايا

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

c:\\temp.mdb

يعني هذا المسار لو كان مغلق راح يصير مشكلة اكتر بس لو خلينا ماكانها

Application.StartupPath&"temp.mdb"

اعتقد افضل بحيث ضمان عدم وجود ملف مشابه بنفس المسى

وايضا ضمان عدم وجود اي permisions تمنع الحفظ هناك

وشكرا للجميع وبانتظار حكم ليحكم بالطريقة الأفضل للوصول الى الحل المثل

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

هذا الموضوع مغلق.

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