تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كود لأخذ نسخة احتياطية يعمل.. ولكن سؤال
#1
السلام عليكم
هذا كود لأخذ نسخة احتياطية من قاعدة البيانات
( "My.Computer.FileSystem.CopyFile("C:\database_tarek.mdf", "C:\bbb\database_tarek.mdf
ويعمل بشكل ممتاز
ولكن عندما يتم تنزيل البرنامج بعد تحزيمه ينزل اوتوماتيك داخل البروجرام فايا program file حيث يختلف اسمها اذا كان الويندوز xp أو 7
وبذلك اختلف مسار الملف المراد عمل نسخة منه
المطلوب :
هل يمكن عند تحزيم البرنامج أن يتم تنزيله على المسار c: بدون البروجرام فايل حتى نستطيع عمل نسخه احتياطية بأمر واحد ..حيث مسار واحد للملف
شكرا[b]

[/b]
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم

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

الرد }}}
تم الشكر بواسطة:
#3
نحمده ونصلي على رسوله الكريم

النسخ الاحتياطي ليس نسخ عادي (copy & past)، استخدم الكود:
كود :
[align=left] backup database DatabaseName to disk = 'Path'
[/align]
الرد }}}
تم الشكر بواسطة:
#4
اخي الفاضل dreamsdotne
اشكرك على مشاركتك
كتبت الكود كالتالي
':backup database database_tarek.mdf to disk = 'c
حيث ان اسم قاعدة البينات database_tarek.mdf فوضع خطوط زرقاء تحت الكود .. ما الخطأ
الرد }}}
تم الشكر بواسطة:
#5
نحمده ونصلي على رسوله الكريم

لم اختبر الكود، فلا أدري هل فيه خطأ ام لا، إن شاء الله أنه يعمل دون مشاكل:
كود :
[align=left]Dim sfd As New SaveFileDialog()
sfd.Title = "نسخة احتياطية"
sfd.FileName = String.Empty
sfd.Filter = "نسخة احتياطية|*.bak"

If sfd.ShowDialog() = DialogResult.OK Then
Dim dbname As String = String.Format("{0}{1} {2}{3}", _
                    System.IO.Path.GetDirectoryName(sfd.FileName), _
                    System.IO.Path.GetFileNameWithoutExtension(sfd.FileName), _
                    DateTime.Today.ToShortDateString().Replace("/"c, "-"c), _
                    System.IO.Path.GetExtension(sfd.FileName))

Try
    Dim con As New System.Data.SqlClient.SqlConnection("Connection String")
    Dim cmd As New System.Data.SqlClient.SqlCommand()

    con.Open()
    cmd.Connection = con
    cmd.CommandType = CommandType.Text
    cmd.CommandText = "backup database database_tarek to disk ='" & dbname & "'"
    cmd.ExecuteNonQuery()

    MessageBox.Show("تم إنشاء النسخة الاحتياطية", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)

Catch ex As Exception
    MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)

Finally
    con.Close()
End Try
[/align]
الرد }}}
تم الشكر بواسطة:
#6
السلام عليكم
فيه طريقتين أقوم باستخدامهما ويعملان معي بنجاح وهذا يتوقف على أسلوب عمل النسخة الاحتياطية :

كود الطريقة الأولى :
PHP كود :
FileCopy((Application.StartupPath "\tarek.mdb"), "C:\")) 

كود الطريقة الثانية :
PHP كود :
Dim CopyFromCopyTo As String
CopyFrom 
Application.StartupPath "\tarek.mdb"
CopyTo "C:\" 
[/align]

والسلام عليكم ورحمة الله وبركاته
الرد }}}
تم الشكر بواسطة:
#7
بصراحة جربتهم كلهم ومفيش حاجه نافعة .. لو مثال مرفق اكون شاكر جدا
الرد }}}
تم الشكر بواسطة:
#8
cvcvcv كتب :بصراحة جربتهم كلهم ومفيش حاجه نافعة .. لو مثال مرفق اكون شاكر جدا

السلام عليكم
آااااسف جداً على التأخير نظراً لظروف العمل
المثال مرفق مع خالص شكري وتقديري للعضو Ramilove من المنتدى القديم
أحب أوضح نقطة هامة وهي :
لحفظ قاعدة البيانات على C: تحت نظام ويندوز 7 يجب عمل الآتي:
من لوحة التحكم للويندوز Control Panel نختار
User Account Control settings
ونختار منها
Never Notify

وعلى الرغم من خطورة هذا الاختيار إلا أنه ضروري في بعض الأحيان عند التعامل مع قواعد البيانات الموجودة على القرص C:

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


الملفات المرفقة
.rar   عمل نسخة إحتياط&#1.rar (الحجم : 79.52 ك ب / التحميلات : 124)
غير موجود بالمنتدى لفترات طويلة بسبب ظروف العمل
الرد }}}
تم الشكر بواسطة:



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


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