منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

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

[/b]
السلام عليكم

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

نحمده ونصلي على رسوله الكريم

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

لم اختبر الكود، فلا أدري هل فيه خطأ ام لا، إن شاء الله أنه يعمل دون مشاكل:
كود :
[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]
السلام عليكم
فيه طريقتين أقوم باستخدامهما ويعملان معي بنجاح وهذا يتوقف على أسلوب عمل النسخة الاحتياطية :

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

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

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

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

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

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