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

[تنبيه - استخدم البحث :]طلب نسخ احتياطي لقاعدة البيانات

بدأه Miss_Egypt في 21 سبتمبر 2009 · 12 رد · 1,638 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

وكل عام وانتم بألف خير وصحة وعافية

اخواني الاعضاء لي طلب بسيط عندكم

انا بشتغل على vb.net 2008 ورابطه مع قاعدة بيانات sql server 2005

بدي كود للطلب التالي :

1- تهيئة وافراغ قاعدة البيانات sql server 2005

2- عمل نسخة احتياطية لقاعدة البيانات sql server 2005

3- استيراد واسترجاع قاعدة البيانات sql server 2005

يا ريت تساعدوني بطلبي لو سمحتو لانه كتير لازمني بمشروعي ضروري جدا جدا

وكلي أمل أن لا تفشلوني اخواني الاعزاء

سلام عليكم

#2

راجعي أختي الكريمة هذا الرابط و ستجدين إن شاء الله ما تريدين :

دراسة حول كيفية إنشاء نسخة احتياطية لقاعدة بيانات Sql Server و استعادتها برمجيا

و هذا الرابط لتثبيت و تهيئة قاعدة بيانات على جهاز آخر

بحث : كيفية تحديد صلاحيات مستخدمي Sql Server و البرامج المتصلة به.

تحياتي...

#3

الأخ الكريم/الأخت الكريمة

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

مرحباً بكم في منتدى الفريق العربي للبرمجة

تحدثنا عن هذا الموضوع في أكثر من موضوع سابق، الرجاء استخدام البحث والإطلاع على المواضيع المثبتة.

كما يرجى التنبه وعدم تكرار المخالفة في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

−1

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#4

اهلا وسهلا أختي وانتي بخير وبصحة وعافية

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

 'Database name is ArabicStore

'Save file dialog is Save

Dim strMessage As String = _

MessageBox.Show("Are you Sure you want to backup database ?", "Backup", MessageBoxButtons.YesNo)

If strMessage = vbNo Then strMessage = Nothing : Exit Sub

Try

Save.FileName = "ArabicStore.mdf"

Save.Filter = "Data files (*.mdf)|*.mdf"

Save.ShowDialog()

If Save.FileName <> "" Then

Save.FileName = "ArabicStore.mdf"

Dim destFilename As String = Save.FileName

System.IO.File.Copy(Application.StartupPath & "\ArabicStore.mdf", destFilename, True)

MessageBox.Show("Backup successful", "Backup")



End If

Catch ex As Exception

MessageBox.Show(ex.Message, ex.Source)

Finally

strMessage = Nothing

End Try

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

 Dim Restore As New OpenFileDialog

Dim strMessage As String = _

MessageBox.Show("Are you Sure you want to restore database ?", "Restore", _

MessageBoxButtons.YesNo, MessageBoxIcon.Warning)

If strMessage = vbNo Then strMessage = Nothing : Exit Sub

Try

Restore.Filter = "Data files (*ArabicStore.mdf)|*ArabicStore.mdf"

Restore.ShowDialog()

If Restore.FileName <> "" Then

Restore.FileName = "ArabicStore.mdf"

Dim destFilename As String = Restore.FileName

System.IO.File.Copy(destFilename, Application.StartupPath & "\ArabicStore.mdf", True)

MessageBox.Show("Restore successful", "Restore")

End If

Catch ex As Exception

MessageBox.Show(ex.Message, ex.Source)

Finally

Restore = Nothing

 End Try

طبعا بس بتغيري اسم قاعدة البيانات

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

تحياتي

تم تعديل هذه المشاركة بواسطة ibu_love في 22 سبتمبر 2009 في 12:57

1

FineDesign For Graphic and WebDesign

ForEach(Minute in MyLife)

MyExperience ++;

#5

مشكورين اخواني محمد رضى و ibu_love

فعلا طريقتك احترافية اخي ibu_love وهذا اللي كنت ادور عليه من الاول

واخي GHOST2010 انا بحثت بالمنتدى كامل مش اني ما لقيت ؟ لا انا لقيت لكن كلها طرق صعبة وطويلة وما فيها اي شيء من الاحترافية , الشطارة مو إني اخذ كود طويل ما اله داعي وصعب وما افهمه ، الشطارة اني اخذ الشي الاحترافي والاسهل للفهم ، وانت نفسك اخوي شوف الكود اللي بالرابط الي وضعه الاخ محمد رضى وشوف الكود اللي وضعه الاخ ibu_love رح تلاقي الطريقة السهلة والاحترافية هي الثانية صح ولا غلط ؟؟

اسفة على الاطالة اخواني

ويا ريت لو احد يتكرم عليي ويعطيني كود افراغ قاعدة البيانات لو سمحتم

سلام ومشكورين على دعمكم لي

#6

معقولة؟ يا اخوان مافيش حد عاوز يساعدني ؟

كل اللي عاوزاه كود افراغ قاعدة بيانات sql server

ايه حاجة صعبة دي ؟؟

الرجئ من الاخوا الكرام مساعدتي لان عاوزاه ضروري جدا جدا

#7

شكلكو ما فهمتوش عليا

عاوزة افرغ الجداول اللي بقاعدة البيانات من البيانات الموجودة فيها بس ده اللي عاوزاه

#8

يا أختي كود التفريغ اللي انت عايزاه سهل جدا بس كان محتاج منك لحظة تركيز ....

لأنه في الاساس سوف يكون عبارة عن جملة sql كالتالي :

delete from tableName

ويتم تكرار ذلك مع كل الجداول الموجودة عندك في الداتا بيز ,,,

سؤال صغير :

ما علاقة Miss_Egypt بالكلمات التالية ؟؟؟ :S لأن ذلك لفت نظري ليس إلا

اقتباس
بدي كود , لا تفشلوني

لك حرية الاجابة طبعا

وشكرا ,,,,

كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم

و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول

الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي

#9

هههههههههههه

ايه يا عم انتا حتفضحنا

لأ بس اختلطت اللهجات مع بعضيها مصري مع خليجي مع شامي يا عم انتا عارف اهل دبي

وعلى كل شكرا الك على المساعدة وفعلا انا عاوزة شوية تركيز :(

#10

مشكور لك يا اخي العزيز بس كود BACKUP نسخ قاعدة البيانات تعطيني رسالة خطا اذا الغيت عملية الحفظ شوف الصورة ممكن الطريقة الف شكر لك

BACKUP

post-45063-1256682809_thumb.jpg

تم تعديل هذه المشاركة بواسطة wolf_alwolf في 28 أكتوبر 2009 في 01:33

#11

هذه رسالة خطأ توضح أن قاعدة البيانات ما زالت مستعملة من طرف برنامج ما قام بفتحها بشكل حصري و بالتالي نظام التشغيل سيرفض فتح الملف لأي برنامج آخر حتى يتم غلقها من طرف البرنامج الأول. الحل هو قبل أن تبدأ عملية أخد النسخة الإحتياطية أن تقوم بغلق كل القنوات المفتوحة نحو قاعدة البيانات.

تحياتي...

#12

قمت منذ فتره بعمل Stored Procedure ليحذف كل القيم من كل جداول قاعدة البيانات، هذا الـ SP عام بمعنى انه يمكنك وضعه داخل اى قاعدة بيانات (اصدار SQL2005 فما اعلى) و سيعمل بكفاءه حيث انه يعتمد على جداول الـ system.

CREATE PROCEDURE ClearData
AS
BEGIN

	Declare @TableName Nvarchar(50)


	Declare DatabaseTables Cursor
	FOR Select Name From Sys.Tables Where type_desc = 'USER_TABLE'

	OPEN DatabaseTables

	Fetch Next From DatabaseTables Into @TableName

	While @@FETCH_STATUS = 0
	Begin

		set @TableName = N'Delete From ' + @TableName

		Execute sp_executesql @TableName

		Fetch Next From DatabaseTables Into @TableName

	End

	Close DatabaseTables
	Deallocate DatabaseTables

END

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

لعمل backup لقاعدة الييانات قم بتنفيذ الكود التالى

BACKUP DATABASE {0}
TO DISK='{1}'

{0} : اسم قاعدة البيانات داخل SQL Server (و هو الإسم الذى يظهر داخل الشجره).

{1} : المسار الذى سيتم وضع الملف الناتج به.

مثال

BACKUP DATABASE AdventureWorks
TO DISK='C:\AW_Backup.bak'

لعمل Restore لقاعدة البيانات يشترط ان تكون قاعدة البيانات التى سيتم عمل restore داخلها موجوده و لديك الصلاحيه للتعامل معها

RESTORE DATABASE {0}
   FROM DISK = '{1}'
   WITH REPLACE,
   MOVE '{2}' TO '{3}',
   MOVE '{4}' TO '{5}'

{0} : اسم قاعدة البيانات داخل SQL Server (و هو الإسم الذى يظهر داخل الشجره).

{1} : المسار الذى سيتم عمل restore منه

{2} : اسم ملف الـ Data لقاعدة البيانات التى تم عمل لها Backup (اسم الملف فقط بدون امتداد).

{3} : المكان الموجود به ملف الـ Data التى سيتم عمل restore داخلها.

{4} : اسم ملف الـ Log لقاعدة البيانات التى تم عمل لها Backup (اسم الملف فقط بدون امتداد).

{5} : المكان الموجود به ملف الـ Log التى سيتم عمل restore داخله.

الهدف من استخدام With Replace هو عندما تقوم بعمل Backup لقاعدة بيانات يتم تخزين مسار ملف الـ Data و الـ Log بداخله و بالتالى عند عمل Restore إذا كانت قاعدة البيانات التى يتم عمل Restore داخلها ذات اسم او مسار مختلف عن الموجود بملف الـ Backup فستفشل العمليه لذا فأنا هنا اقوم بعمل Restore و ايضا اقوم بتحديد المسارات التى سيتم عمل restore بها لتجنب فشل العمليه.

مثال

سنفترض انك قمت بتطبيق الكود الخاص بعمل backup من المثال السابق و تريد عمل restore لذلك الملف داخل قاعدة بيانات بإسم TestDB و مسار ملفاتها كالتالى

Data File: C:\MyDatabase\Test_Data.mdf
Log  File: C:\MyDatabase\Test_Data.ldf

كما ترى فإسم قاعدة البيانات التى سيتم عمل restore بها و مساراتها مختلفه تمام الإختلاف عن المسارات المسجله داخل ملف الـ Backup (حيث ملف الـ Backup يحتوى على بيانات AdventureWorks التى يتم تثبيتها مع باقى قواعد بيانات النظام).

RESTORE DATABASE TestDb
   FROM DISK = 'C:\AW_Backup.bak'
   WITH REPLACE,
   MOVE 'AdventureWorks_Data' TO 'C:\MyDatabase\Test_Data.mdf',
   MOVE 'AdventureWorks_Log' TO 'C:\MyDatabase\Test_Data.ldf'

و الله ولى التوفيق

تم تعديل هذه المشاركة بواسطة Muhammad alaa في 28 أكتوبر 2009 في 02:51

مدونتي: C++ Tips and Tricks

#13

مشكورين لكم الف شكر اخوكم

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

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

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

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

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