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

ضغط القاعدة في النسخ الأحتياطية

مغلق
بدأه layan في 15 يوليو 2006 · 24 رد · 1,403 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أخواني اريد عند التعامل مع النسخ الأحتياطي

عند نسغ قاعدة من مجلد البرنامج إلى مجلد النسخ الأحتياطية تكون القاعدة مضغوطة ببرنامج الوين رار

ويكون أسمها حرف ثم تاريخ مثلاً

R_1427

وعند عمل نسخة أخرى تكون هكذا R_1428

وهكذا في كل مرة تأخذ أسم جديد غير الأول

ولا أريد أسم عشوائي بل أريد ان يكون أسمها هو تاريخ اليوم الذي تم اخذ النسخة فيه

يعني مثل برنامج معارف

الف الف شكر لكم جميعاً

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#2

أين المبرمجون

لماذا لا أحد يجيب على سؤالي

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#3

لله يامحسنين

تم تعديل هذه المشاركة بواسطة layan في 17 يوليو 2006 في 00:58

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#4

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

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

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

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

Dim d, m, y, x As String
d = Day(Date)
m = Month(Date)
y = Year(Date)
x = "layan" & "_" & d & "_" & m & "_" & y

FileCopy "People.mdb", "c:\" & x

أتمنى يكون هذا هو المطلوب

بالتوفيق

============

الى اللقاء

JusT LeT YouR MinD WorK

#5

الف الف شكر لك عزيزي

سأحاول واخبرك بالنتيجة

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#6

الف الف شكر

نعم لقد تم نسخ القاعدة وهي تحمل الأسم layan_16_7_2006

وهذا هو المطلوب

ولكن لا تظهر وكأنها قاعدة بيانات بل تظهر على هيئة ملف مجهول الهوية أنظر الصورة المرفقة

أنا أريد ان تكون بأمتداد mdb

أنظر الصورة الف الف شكر لك عزيزي

ياليت تشوف لي هذه الشلكة وآسف على التطفل (وش ذا للزقة)

/index.php?showtopic=101590

post-83188-1153095384_thumb.jpg

تم تعديل هذه المشاركة بواسطة layan في 17 يوليو 2006 في 03:27

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#7

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

لا يا اخي مافي تطفل ولا شئ احنا موجودين كلنا علشان نساعد بعض

بس كان الامر محتاج منك قليل من التفكير

بامكانك التعديل في احد السطرين

اما انك تغير السطر الخامس وتخليه كالتالي

x = "layan" & "_" & d & "_" & m & "_" & y & ".mdb"

أو انك تخليه كما هو وتغير في السطر الاخير وتخليه كالتالي :

FileCopy "People.mdb", "c:\" & x & ".mdb"

جرب وان شاء الله مافي مشكلة ولا يوجد اي حرج اذا واجهت اي مشكلة اخرى

JusT LeT YouR MinD WorK

#8

الف الف شكر لك عزيزي MR^King

الطريقة نجحت 100%

أرجو منك حل مشاكلي الأخرى

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#9

أستاذي العزيز MR^King

هل يمكن تغيير الأسم بدلاً من التاريخ الميلادي يظهر التاريخ الهجري

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#10

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

اخي بلاش كلمة استاذ الله يخليك احنا كلنا بنتعلم

بالطبع يمكنك استخدام التاريخ الهجري بدلا من الميلادي

فقط كل ما عليك هو استبدال كلمة Date بكلمة vbCalHijri

ولكن لا تنسى ان تقوم بتعديل اعدادات التاريخ من الكنترول بانل علشان يظهر التاريخ الهجري معاك مظبوط

بالتوفيق :)

==========

الى اللقاء

JusT LeT YouR MinD WorK

#11

السلام عليكم

أولاً

والله انك ملك

تستاهل اكثر من كلمة استاذ لأنني استفدت من شروحاتك وردودك الشئ الكثير

ثانياً

قمت بتغيير ماطلبت مني ولكن ظهر تاريخ غريب انظر

layan_31_12_1899.mdb

أريد ان يظهر التاريخ بهذا الشكل

layan_24_06_1427.mdb

طبعاً قمت بتغيير تنسيق التاريخ من لوحة التحكم ووضعت التاريخ الهجري وظهرت هذه التسمية الغريبة

وهذا هو الكود أرجو تعديلة

Private Sub Command1_Click()
Dim d, m, y, x As String
d = Day(vbCalHijri)
m = Month(vbCalHijri)
y = Year(vbCalHijri)
x = "layan" & "_" & d & "_" & m & "_" & y

FileCopy "c:\layan.mdb", "c:\gg\" & x & ".mdb"
End Sub

والف الف شكر لك عزيزي

MR^King

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#12

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

بصراحة يا اخي لا اعرف سبب ظهور التاريخ بهذا الشكل مع اني حاولت تعديلها عن طريق امرار الدالة على DTPicker

ولكن النتائج غريبة فعلا

عموما انا هبحثلك عن الحل وسأضعه قريبا ان شاء الله بمجرد اني اجده

:)

========

الى اللقاء

JusT LeT YouR MinD WorK

#13

تسلم لي يا غالي

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#14
db1.close
Calendar = vbcalHijri
dd= Format (date, "yyyy-mm-dd")
aa=format(dd, "(yyyy-mm-dd)") & format (Time,"hh-mm-ss)")
FileCopy app.path & "\" & "db1.mdb", "d:\db1" & aa & ".mdb"

جربو هذا الكود وأعطوني الراي

حيطلع اسم قاعدة البيانات للنسخه الاحتياطيه هكذا في الدرايفر D

db1(1427-06-25)(14-41-24)

24-41-14 = الساعة 2 واحد وأربعون دقيقه وأربع وعشرون ثانية (( وقت عمل النسخه الأحتياطيه ) نظام 24 ساعة

تم تعديل هذه المشاركة بواسطة محمدvb في 21 يوليو 2006 في 15:13

#15

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

تفضل اخي هذا هو الكود المطلوب ان شاء الله

Dim MyHDate As Date
Calendar = vbCalHijri
MyHDate = Format(Date, "yyyy-mm-dd")

Dim d, m, y, x As String
d = Day(MyHDate)
m = Month(MyHDate)
y = Year(MyHDate)
x = "layan" & "_" & d & "_" & m & "_" & y

FileCopy "mydb.mdb", "c:\" & x & ".mdb"

وللعلم يمكنك استعماله دون تغيير الاعدادات في الكنترول بانل

أرجو انه يفيدك :)

===============

الى اللقاء

تم تعديل هذه المشاركة بواسطة MR^King في 21 يوليو 2006 في 15:03

JusT LeT YouR MinD WorK

#16

السلام عليكم

آسف للتأخر بالرد

سأجرب واوافيكم بالنتيجة

والف الف شكر لكم جميعاً

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#17

السلام عليكم

اخواني وخاصة الأخ MR^King

مشكلة في النسخ الاحتياطي

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

علماً انه لا يعطيني اي رسائل أخطاء

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

أرجو التعديل علية او النظر ماهي المشكلة

On Error Resume Next
Dim MyHDate As Date
Calendar = vbCalHijri
MyHDate = Format(Date, "yyyy-mm-dd")

Dim d, m, y, x As String
d = Day(MyHDate)
m = Month(MyHDate)
y = Year(MyHDate)
x = "H" & "_" & d & "_" & m & "_" & y

FileCopy "C:\Program Files\layan\db1.mdb", "C:\Program Files\layan\Backup\" & x & ".mdb"

أخي وأستاذي الفاضل MR^King

لقد جربت طريقة التاريخ الهجري وتعمل 100%

والف الف شكر لك

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#18

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

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

بالنسبة لعملية الحذف في حد ذاتها فهي بسيطة

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

وبالتالي يجب معرفته

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

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

يعني نفترض انك حصلت على مفتاح الريجستري وخزنته في المتغير X يبقى الحذف هيكون بالطريقة دي

kill x

وبذلك يتم حذفها ثم تقوم باخذ نسخة احتياطية جديدة

اتمنى تكون فاهم الفكرة ولو محتاج ايضاح اكثر ان شاء الله لا اتأخر عنك

بالتوفيق

==============

الى اللقاء

JusT LeT YouR MinD WorK

#19

عزيزي وأستاذي الفاضل MR^King

أنت ادخلتني متاهة لا اعرف الخروج منها

انا لا اعرف كيف اعمل مفتاح في الريجستري

ياليت تساعدني في هذه العملية

وآسف جداً جداً على اشغالك في هذا البرنامج

ولكن تحملني

وكل ماتعملة بأذن الله انه في موازين حسناتك واعلم ان ما تقوم به هو زكاة بحر علمك زادك الله علماً وعملاً

الف الف شكر لك عزيزي وأستاذي الفاضل MR^King

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#20

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

اخي العزيز انا حسبت انك عاوز الفكرة بس

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

فاذا حصل اي خطأ اكتب رسالة الخطأ وان شاء الله نصلحه

اتفضل الكود بعد التعديل

Dim Spath As String
Dim getset As String

getset = GetSetting("Myapp", "Path", "subPath")
On Error GoTo 1
Kill getset
1
Dim MyHDate As Date
Calendar = vbCalHijri
MyHDate = Format(Date, "yyyy-mm-dd")

Dim d, m, y, x As String
d = Day(MyHDate)
m = Month(MyHDate)
y = Year(MyHDate)
x = "H" & "_" & d & "_" & m & "_" & y

FileCopy "C:\Program Files\layan\db1.mdb", "C:\Program Files\layan\Backup\" & x & ".mdb"
Spath = "C:\Program Files\layan\Backup\" & x & ".mdb"
SaveSetting "Myapp", "Path", "subPath", Spath

بس ياريت تقرأ الكلام اللي كتبته في الرد السابق علشان تفهم الفكرة وتستفيد منها في البرامج القادمة

جرب الكود واخبرنا بالنتيجة وان شاء الله يشتغل معاك تمام

=================

الى اللقاء

JusT LeT YouR MinD WorK

#21

أستاذي الفاضل MR^King

السلام عليكم

الف الف شكر لك

لولا وجودك في هذا المنتدى لم اتمكن من

الوصول إلى ماوصلت إليه من علم بالبرمجة ولكن بفضل الله ثم بفضلك أستفدت الشئ الكثير

أولاً شكر لك على الكود

ولكن

يوجد عندي قاعدتين DB1 و DB2

عند عمل نسخة احتياطية للقاعدة الأولى تحمل الأسم R_27_6_1427.mdb

وووووو

عند عمل نسخة احتياطية للقاعدة الثانية تحمل الأسم L_27_6_1427.mdb

طبعاً كل القاعدتين يتم وضعهما في مجالد الـ Backup

المشكلة عند عمل نسخة احتياطية للقاعدة الثانية يتم حذف النسخة الأحتياطية للقاعدة الأولى

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

اريد ان يكون داخل مجلد الـ Backup نسختين

الأولى هي : R_27_6_1427.mdb

والثانيةهي : L_27_6_1427.mdb

وعند عمل نسخة مرة ثانية يتم حذف النسخة المماثلة إما R أو L

آسف على الأطالة

والف الف شكر لأستاذي الفاضل MR^King

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#22

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

اخي الكريم لو نظرت للكود قليلا لوجدت ان الحل سهل جدا

اولا الكود لن يقوم باخراج نسخة احتياطية باسم R_27_6_1427.mdb او L_27_6_1427.mdb

ولكن سنخرج بنسخة اسمها H_27_6_1427.mdb

اذا الفرق واضح وهو في الحرف الاول

ولو نظرنا للكود لوجدنا انه غير متغير فكل ما عليك هو وضع نفس الكود مع تغيير حرف الـ H الى الحرف الذي تريده

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

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

مع انه يمكن اختصار جزء من الكود بدلا من تكراره بشكل كامل ولكن في كلا الحالتين يجب تغيير الحرف

جرب وان شاء الله يبقى تمام

===========

الى اللقاء

JusT LeT YouR MinD WorK

#23

استاذي الفاضل

هذا مافعلته قمت بتكرار الكود أو بالأصح

قمت بوضع زرين أمر وكل واحد يحمل نفس الكود غيرت الحرف الأول

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

ولكن يتم حذف النسخة السابقة سواً القاعدة الأولى أو الثانية

أرجو ان تجرب الكود وتتأكد

ومعذرة على الأطالة

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

#24

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

عفوا اخي العزيز الخطأ من عندي المرة دي

كما ذكرنا يجب تكرار الكود مع تغيير الحرف

كما يجب ايضا تغيير المتغيرات الموجودة في الكود وهي

Dim Spath As String

Dim getset As String

-------------------------------

ثم تقوم بتغيير اسم المفتاح في الريجستري

فقط غير الكلمة دي

subPath وخليها اي حاجة تانية او حتى زود عليها حرف

-=-=-=-=-=-=

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

وان شاء الله يعمل بدون مشاكل

جرب ولو واجهت فيه مشكلة حاول تصلحها واذا لم تستطع اخبرني وسأضع الكود كامل مع التعديل ان شاء الله

واسف على الخطأ الغير مقصود :$

======================

الى اللقاء

JusT LeT YouR MinD WorK

#25

الف الف شكر لك نجحت الطريقية 100%

ياليت تشوف لي هذا الرابط

/index.php?showtopic=102517

كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون

فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر

(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))

هذا الموضوع مغلق.

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