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

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

بدأه aboumazen في 24 يوليو 2012 · 8 رد · 1,103 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بحث طويلا في المنتدى لكن لم اجد جوابا داخله لكن وجدت هذا الكود لكنه لم يعمل معي لم افهم فيه بعض التفاصيل

الكود

  Private Sub اخذنسخةاحتياطيةلقاعدةالبياناتToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles اخذنسخةاحتياطيةلقاعدةالبياناتToolStripMenuItem.Click

    	Dim sDBFile As String = "E:\myDB.mdb"
    	Dim sBackUpFile As String = "E:\myDB_BackUp.mdb"
    	' Backup *.mdb database
    	If File.Exists(sDBFile) Then
        	Dim db As New dao.DBEngine
        	'CompactDatabase has two parameters, creates a copy of compact DB at the Destination path
        	db.CompactDatabase(sDBFile, sBackUpFile)
    	End If
    	'Restore the original file from the compacted file
    	If File.Exists(sBackUpFile) Then
        	File.Copy(sBackUpFile, sDBFile, True)
    	End If
	End Sub

وما فهمته من المتغيرين الاول والثاني ان الاول مكان تخزين النسخة

و الثاني قاعدة البيانات التي يعمل منها البرنامج

فقمت بغيير المسار الثاني الى مسار البرنامج حيث قاعدة البيانات

لكن يظهر المشكل انه لا يتعرف على الباث الاول

وانا لم اعرف لماذا لم يجعل المتغير من نوع path

ارجو المساعدة جزاكم الله خيرا وان كان هناك طريقة افضل او رابط بغير الانجليزية اكون شاكرا

تقبل الله منا و منك الصيام والقيام

#2

المتغير الاول هو قاعدة البيانات الاصلية

المتغير الثاني مكان النسخة

سطر استدعاء الاكسس Dim db As New dao.DBEngine

db.CompactDatabase(sDBFile, sBackUpFile) هو امر عمل النسخة

ملحوظة يجب غلق اي اتصال بقاعدة البيانات قبل هذا الامر

#3

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

اخي كريم على الرد

فعلا بدأ يخبرني بان القاعدة مفتوحة

رغم اني افتتح على الفورم الاساسي وليس فيه اي اتصال باي قاعدة

و انا استعملت الكود في كل اتصال بقاعدة البيانات

فكيف اغلق كل الاتصالات وعددها كبير لان عندي اكثر من40 جدول ولكها متصلة على الاقل مرة واحدةيعنى الامر تجاوز 50اتصال

جزاكم الله خيرا هذه المرحلة ما قبل الاخيرة لانهاء البرنامج

تم تعديل هذه المشاركة بواسطة aboumazen في 26 يوليو 2012 في 17:12

#4

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

#5

انا اغلق كل اتصال بعد الانتهاء منه

اضف الى ذلك كما قلت سابقا اني استعمل الكود في الاتصال ولا استعمل الوزرت ابدا

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

وضعت الكود النسخ في الفورم لوود لكن مع ذلك تخرج رسالة تخبرني الن قاعدة البيانات مستعملة

مع ملاحظة اني استعمل نوعين من الاتصال متصل و منفصل في البرنامج

هل من حل جزاكم الله خيرا

تم تعديل هذه المشاركة بواسطة aboumazen في 27 يوليو 2012 في 18:31

#6

ارفق المشروع وقاعدة البيانات

#7

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

تم حل المشكل بالنسبة لقاعدة البيانات

لكن البرنامج عني يخزن ملفات ايضا مرتبطة بقاعدةالبيانات وعلي ان انسخ الملفات ايضا

بحث في مواقع اخرى ووجدت هذا المثال لكن اريد ان اعدل عليه بعض الشيء هو جميل ورائع للاخ ramilove

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

هذا الجزء من الكود هو الذي مازال فيه المشكل وقد عدلت على كل الكود الا هذه الدالة التي لم اعرف من اين آتيها

Private Sub Folder_GetTotalFileSize(ByVal Folder As System.IO.DirectoryInfo)

    	On Error Resume Next

    	For Each fi As System.IO.FileInfo In Folder.GetFiles
        	Folder_TotalFileSize += fi.Length
        	FolderSize += fi.Length
    	Next


    	For Each di As System.IO.DirectoryInfo In Folder.GetDirectories
        	Folder_GetTotalFileSize(di)
    	Next


	End Sub

هذا الكود يقوم بحساب حجم الملف و الملفات التي اسفل منه للعمل بهذه القيمة في progress bar

للاسف هو ياخذ المسار الحالي وهوالمسار الذي يتم تحديده من openfile

واصبحت هذه القيمة 0و المعادلةالرياضيةالمستعملة في progress bar لا تسمح بالقسمة على0

هذا الاخير قمت بالغائه في الكود و تحديد مكان البرنامج هو مكان اخذ النسخة من الملفات

في المرفات المثال

الفورم رقم 2 لم يتم التعديل عليه

الفروم رقم 3 يعطي تم فيه التغيير

تم تعديل هذه المشاركة بواسطة aboumazen في 29 يوليو 2012 في 22:08

#8

اين الملف

#9

عذرا ظننت اني ارفقته

لم اعرف كيف ارفع من داخل المنتدى ربما لا يرفعالملفات من نوع .rar

http://www.wata.cc/up/view.php?file=4e1b98710a

تم تعديل هذه المشاركة بواسطة aboumazen في 30 يوليو 2012 في 15:09

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

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

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

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

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