14-10-12, 02:05 PM
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .المقدمة :
هناك العديد من طرق التعامل مع قواعد البيانات ، ففيما تتربع التقنية الحديثة Ado.net على طرق التعامل مع قواعد البيانات في اصدارات .Net FrameWork فإن هناك مثيلاً لها في الفيجوال بيسك وهو الاصدارة الاقدم Ado ، فيما توجد طرق أخرى مثل RDO و DAO وهي الطريقة محور درسنا اليوم ، وهي واحدة من اقدم الطرق ، ولم تطلها يد التطوير التي طالت ADO على سبيل المثال لتخرج منها DAO.net .
ويشرح هذا الدرس كيفية التعامل مع هذه التقنية من خلال قاعدة بيانات بسيطة جداً ، والدرس مقسم إلى ثلاثة اقسام :
يتضمن القسم الأول محتويات قاعدة البيانات ، ومن ثم انشاء الواجهة الاساسية بالفيجوال بيسك وكيفية الربط مع قاعدة البيانات وانشاء قاعدة بيانات وقت التنفيذ Run Time .
أما القسم الثاني فيحتوي على كيفية التعامل مع قواعد البيانات والأوامر الاساسية للحفظ والاضافة والتعديل وغيرها .
أما الدرس الثالث فهو مختص بعرض البيانات الموجودة في درسنا على أداة MSFlexGrid ، وبعض العمليات عليها .
ويختص الدرس الأخير بعمل عملية بحث مبسطة بدلالة الاسم ، أو رقم الهاتف . مع اتمام التعامل مع MSFlexGrid .
الدرس :
في البداية قم بانشاء قاعدة بيانات تحتوي على الحقول التالية :
Nu : من النوع رقم Number ، وهو مثلاً رقم الموظف في الشركة .
Fn : من النوع ( نص Text ) وهو خاص باسم الشخص .
Te : وهو خاص برقم الهاتف ، وهو من النوع رقم Number ، وهذا الحقل أيضاً من المفضل وضعه على هيئة نص Text إلا أننا سنسخدمه على شكل رقم .
ومن ثم قم بانشاء Form وضع فيه الأدوات التالية :
* Text1,Text2,Text3 لعرض معلومات كل شخص .
* Command من 1 إلى 4 ( الأول - السابق - التالي - الأخير ) .
* Command من 5 إلى 8 ( تعديل سجل ، سجل جديد - انهاء بلا حفظ - حفظ ) . مع مراعاة أن يكون التمكين Enabled لكل من زري ( حفظ - بلا حفظ ) هو False .
* Command من 9 إلى 12 ( حذف - خروج - عرض في جدول - عدد السجلات ) .
وقم بانشاء Module ... اضغط على الفورم بزر الماوس الأيمن ، اختر Add ومن ثم Module .
والآن سننتقل لمرحلة التعامل مع قاعدة البيانات .
لبدء التعامل مع DAO لا بد من اضافة المكتبة الخاصة بالداو إلى المشروع الذي قمنا بانشاءه ، لذا من قائمة Project اختر Refrence واختر المكتبة :
Microsoft Dao 3.6 Object Library
أو أي اصدار اقدم ، إلا أن 3.6 هو الاصدار المفضل .
والآن ، تقدم لنا DAO كائنات مختلفة للتعامل مع قواعد البيانات ، فهي توفر لنا Workspace لبدء العمل مع قاعدة البيانات مع الكائن Database والمختص بالتعامل مع ملف قاعدة البيانات ، RecordSet للتعامل مع الجداول ، TableDef للقيام بانشاء جداول وقت التنفيذ - أحد تطبيقاته - .
والآن سنتعرف على Sub main() ؟
يوفر لنا الفيجوال بيسك امكانية بدء المشروع بواسطة هذه الاجراء والذي يتم تعريفه في Module ، ولذلك نقوم في هذا الاجراء بعمل المهام التي نحتاجها قبل البدء في تنفيذ الكود .
من قائمة Project اختر Project Properties ، ومن ثم اختر Sub main من القائمة Startup .
والآن سوف بتعريف عدد من المتغيرات Public وذلك بالشكل التالي :
كود :
Public D1 As Database
Public T1 As Recordset
Public T2 As Recordset
Public folder As String
* المتغيرات Public هي أحد أنواع الوصول للمتغيرات حيث يتم مشاهدة المتغيرات على مستوى المشروع .
المتغير الأول خاص بقاعدة البيانات ، بينما متغيرات خاصان بالجداول ، وأخيراً متغير نصي String نخزن فيه مسار البرنامج الحالي .
والآن سوف نقوم ببرمجة الاجراء main ، وسوف يحتوي على المهام التالي مرتبة :
* معرفة مسار البرنامج .
* إذا لم تكن قاعدة البيانات موجودة فإنه يقوم باستدعاء اجراء انشاء قاعدة بيانات جديدة .
* بعد وجود قاعدة البيانات الجديدة أو الموجودة اصلاً ، القيام بازالة خاصية القراءة فقط من على الملف .
* الاتصال بقاعدة البيانات .
* اظهار الفورم الرئيسي للبرنامج .
وهذا هو الكود ، وبين كل مهمة ومهمة أخرى هناك سطر .
كود :
Private Sub main()
folder = App.Path
If Right(folder, 1) <> "\" Then folder = folder & "\"
If Dir(folder & "mm.mdb") = "" Then
CreateMyDatabase folder & "mm.mdb"
End If
SetAttr folder & "mm.mdb", vbNormal
Set D1 = DBEngine.Workspaces(0).OpenDatabase(folder & "mm.mdb")
Form1.Show
End Sub
- انشاء ملف قاعدة البيانات .
- بعد انشاء الملف ، انشاء الجداول والحقول داخلها .
سنسمي المهمة الأولى CreateMyDatabase وسوف تقوم بالخطوات التالية مرتبة :
* تعريف متغير خاص لقاعدة البيانات .
* انشاء قاعدة البيانات - لاحظ تشابه الطريقة مع طريقة فتح قاعدة البيانات .
* اغلاق قاعدة البيانات .
* استدعاء الاجراء الثاني - انشاء الجداول والحقول داخلها - .
* افراغ المتغيرات Varibles حتى لا تحجز مكاناً من الذاكرة .
مجدداً هذا هو الكود :
كود :
Sub CreateMyDatabase(DB_Name As String)
Dim dbsNew As Database
Set dbsNew = DBEngine.Workspaces(0).CreateDatabase(DB_Name, dbLangGeneral, dbEncrypt)
dbsNew.Close
CreateMyTableS DB_Name
Set dbsNew = Nothing
Set wrkDefault = Nothing
End Sub
* تعريف TableDef لانشاء جدول من خلاله . وكذلك متغير من نوع ملف قاعدة بيانات .
* فتح قاعدة البيانات التي انشأناها للتو .
* تعريف TableDef على أنه منشأ للجداول داخل قاعدة البيانات ( ربطه بقاعدة البيانات ) .
* البدء في اضافة الحقول .
* اتمام عملية اضافة الجدول .
وهذا هو الكود :
كود :
Sub CreateMyTableS(DBName)
Dim dbsMyData As Database
Dim tdfNew1 As TableDef
Set dbsMyData = OpenDatabase(DBName)
With dbsMyData
Set tdfNew1 = dbsMyData.CreateTableDef("TB")
With tdfNew1
.Fields.Append .CreateField("nu", dbInteger)
.Fields.Append .CreateField("fn", dbText)
.Fields.Append .CreateField("te", dbDouble)
End With
dbsMyData.TableDefs.Append tdfNew1
End With
End Sub
في هذا الدرس تعرفنا سوية على كيفية عمل كائن Dao ، وكيفية انشاء قاعدة بيانات من خلاله وقت التنفيذ .
في الدرس القادم سوف نبدأ في التعامل مع قاعدة البيانات بإذن الله .
* في الدرس الأخير سوف يكون ملف مرفق على جميع العمليات خلال الدروس بإذن الله .
والسلام عليكم ورحمة الله وبركاته .