تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشروع نسخ احتياطي
#1
السلام عليكم 

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

المشروع مرفق 
ارجو المساعدة


الملفات المرفقة
.rar   النسخ الاحتياطي.rar (الحجم : 1.05 م ب / التحميلات : 30)
الرد }}}
تم الشكر بواسطة:
#2
مبدأيا لدي ملاحظة تتعلق بجملة الاستعلام التي استخدمتها لاستعادة النسخة الاحتياطية
انت استخدمت الجملة التالية
كود :
 ("RESTORE DATABASE " & cmbdatabase.Text & " FROM disk='" & OpenFileDialog1.FileName & "'")

هذه الجملة تستعيد نسخة احتياطية لقاعدة بيانات موجودة اما اذا كانت غير موجودة فسيتم انشاءها 
وفي حال كانت قاعدة البيانات موجودة فستم الاستعادة بنجاح شرط ان لا تكون قاعدة البيانات قيد الاستخدام اما اذا كانت قيد الاستخدام فستفشل الاستعادة ويظهر خطأ طبعا انت ستقول لي ان قاعدة البيانات ليست قيد الاستخدام انا ارد عليك انه في كثير من الاحيان نغلق جميع الاتصالات بقاعدة البيانات ولكن تبقى قيد الاستخدام وهذا يفسر ان الكود الاول الذي استخدمته انت ينجح احيانا واحيانا لا وعند الاستخدام الطويل لبرنامجك سيظهر لك انه حتى من المخدم الرئيسي ستظهر مشاكل
ولكن هناك جملة استخدام اخرى لحل هذه المشكلة على الشكل الاتي
كود :
"ALTER DATABASE " & DATABASEE & " SET OFFLINE WITH ROLLBACK IMMEDIATE; RESTORE DATABASE " & DATABASEE & " From Disk ='" + OpenFileDialog1.FileName + "' ALTER DATABASE " & DATABASEE & " SET ONLINE WITH ROLLBACK IMMEDIATE"
المتغير databasee يحمل اسم قاعدة البيانات
في هذا الامر يقم بتحويل قاعدة البيانات الى الوضع offline ثم يجري عملية الاستعادة ثم يرجع قاعدة البيانات الى الوضع online ولكن هذا اذا كانت قاعدة البيانات موجودة اما اذا كانت غير موجودة مثل انه تم حذفها بالخطأ فعندئد لن تتم الاستعادة وستظهر رسالة الخطأ
------
ومن خلال بحثيي وتجربتي وجدت انه اغلب الشروحات على مواقع النت على اليوتيوب عند شرح الاستعادة يستخدمون جملة واحدة
وانا برأيي لا بد من استخدمام الكودين ضمن جملة شرطية
اولا نستعلم عن جميع قواعد البيانات ثم في حال كانت قاعدة البينات موجودة يتم استخدام الاستعلام الثاني الذي ذكرته لك اما اذا كانت قاعدة البيانات غير موجودة فعندئذ نستخدم الاستعلام الثاني الذي ذكرته لك


******
ارجو ان تكون الفكرة وصلت
سورس كود برنامج محاسبة ومبيعات احترافي  -  سورس كود تطبيق ارسال رصيد من الجوال B4A
سورس كود تطبيق مبيعات للجوال
تيليجرام   Abo_anas_kahwaji@
واتساب 00963951283515
الرد }}}
تم الشكر بواسطة: مصمم هاوي
#3
شكرا اخى
انا حاليا لا اُريد استرجاع النسخ الاحتياطي
المطلوب فقط النسخ الاحتياطي
المشكلة التي توجهني هيا عدم عمل البرنامج عندما يكون على جهاز بالشبكة
عندم يكون على الجهاز الموجود به السيرفر يشتغل البرنامج 100%
الرد }}}
تم الشكر بواسطة:
#4
هذا الكود
  Private cmd As New SqlCommand
    Dim red As SqlDataReader
    Dim op As New OpenFileDialog
    Dim opf As New FolderBrowserDialog
    Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX1.Click
     

        Try
            If txt1char.Text = "C" Then
                MessageBox.Show("حاول مجدداً C:\ لا يمكن حفظ النسخة الاحتياطية على الجذر  ", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If
            Dim DATABASEE As String = My.Settings.DataBase
            Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=" & DATABASEE & ";Integrated Security=True")

            'Dim datab As String
            'datab = "DB_ACC"

            'datab = My.Settings.DataBase
            If txt_path.Text = "" Then
                MessageBox.Show(" يجب اختيار المسار اولا", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Return

            End If

            Dim Filename As String = txt_path.Text + "\ " + DATABASEE + " " + DateTime.Now.ToShortDateString().Replace("/", "-") + " - " +  DateTime.Now.ToLongTimeString().Replace(":", "-") & ".bak"
            If con.State = ConnectionState.Open Then
                con.Close()
            End If
            con.Open()
            Dim querey As String = "backup database " & DATABASEE & " to disk='" & Filename & "'with init,stats=10"

            cmd = New SqlCommand(querey, con)
            cmd.ExecuteNonQuery()
            con.Close()
            MessageBox.Show(" تمت عملية النسخ بنجاح", "تاكيد", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Catch ex As Exception
            MessageBox.Show(ex.ToString, "تنبيه")
        End Try
    End Sub
سورس كود برنامج محاسبة ومبيعات احترافي  -  سورس كود تطبيق ارسال رصيد من الجوال B4A
سورس كود تطبيق مبيعات للجوال
تيليجرام   Abo_anas_kahwaji@
واتساب 00963951283515
الرد }}}
تم الشكر بواسطة:
#5
ممكن تقوم التعديل على المشروع المرفق في فورم جديد Formnew
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم