شرح برامج » لغات البرمجة » الدرس الخامس انشأ برنامجك بالفيجوال بيسك

 الدرس الخامس انشأ برنامجك بالفيجوال بيسك  أضيف في: 6-12-1426هـ
الحلقة الخامسة


كائنات الوصول للبيانات Data Access Object ( DAO)

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

http://www.arabteam2000.com/picload/Files/NasserLessons26.jpg
ولقد قمنا بشرح الأداة Data Control في الحلقة السابقة حيث يمكنك استخدام أكثر من أداة واحدة داخل النموذج الواحد للربط مع أكثر من جدول وسنقوم في هذه الحلقة بشرح الكائن المقابل لهذه الأداة وهو كائن الوصول للبيانات DAO .
الكائن Object هو صنف له مجموعة من الخصائص والطرق والأحداث لتأدية غرض معين وكائن الوصول لقاعدة البيانات DAO هو الرابط بين برنامج الفيجوال بيسك وبرنامج قواعد البيانات حيث يشبه الوصول للبيانات بالشكل التالي :

http://www.arabteam2000.com/picload/Files/NasserLessons27.jpg
حيث يمثل (ODBC) Open Database Connectivity عنصر الاتصال مع قاعدة البيانات والذي يسمى الاتصال المفتوح مع قاعدة البيانات وهو بداخلة مجموعة من الكائنات يقع في أعلاها الكائن DAO و RDO اللذان يستخدمان المحرك ODBC للوصول للبيانات وهناك مجموعة أخرى من الكائنات سوف نتعرض لها عند الشرح .
وأدخل معي الى عالم البرمجة الحقيقة حيث كل شيء ميسر هنا ولكن يبقي الابتكار


خطوات التعامل مع الكائنات DAO

الخطوة الأولى

تعريف الكائنات في مرجع البرنامج References وهنا يجب التفريق بين Component وهو المكان الذي تضيف منه أدوات جديدة أما References هو المكان الذي تضيف منه كائنات جديدة ولإضافة الكائنات نقوم بالخطوات التالية
1 - اضغط قائمة PROJECT واختار REFRANCES
2 - من الشاشة التي تظهر أختار الكائن MICROSOFT DAO 3.51 OBJECT LIBRARY أو حسب آخر إصدار موجود عندك

http://www.arabteam2000.com/picload/Files/NasserLessons28.jpg
الخطوة الثانية

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

الخطوة الثالثة

في شاشة محرر الكود للنموذج وفي منطقة تعريف المتغيرات للنموذج ( أعلى النموذج ) يتم تعريف المتغيرات التي تعبر عن كائنات قاعدة البيانات كالتالي :


CODE

CODE:
0001
0002
0003
0004
Dim WS As DAO.Workspace تعريف متغير يعبر عن منطقة العمل
Dim DB As DAO.Databaseتعريف متغير يعبر عن كائن قاعدة البيانات
Dim RS As DAO.Recordset تعريف متغير يعبر عن كائن مجموعة السجلات

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

الخطوة الرابعة

وهنا يجب أن نعرف أنه في قواعد البيانات يفضل أن تكتب كود فتح قاعدة البيانات مرة واحدة في حدث Form load للشاشة الرئيسية للبرنامج وهي الشاشة التي تعتبر الحاوية لكل شاشات البرنامج ولا تغلق إلا عند الخروج من البرنامج أما الجداول فيتم فتحها وإغلاقها حسب الاستخدام .

إنشاء قاعدة البيانات والجداول باستخدام الكود

إذا كنت ترغب في إنشاء قاعدة البيانات وإنشاء الجداول باستخدام الكود فيتم
1 - تعريف الكائنات التالية في نفس الموضع السابق


CODE

CODE:
0001
0002
0003
0004
Dim TBL1 As TableDef تعريف متغير يعبر عن كائن الجداول ( الجدول الأول )
Dim TBL2 As TableDef تعريف متغير يعبر عن كائن الجداول ( الجدول الثاني )
Dim f1, f2, f3, f4, f5, f6 As Field تعريف متغير يعبر عن حقول الجدول الأول
Dim ff1, ff2, ff3, ff4, ff5, ff6 As Field تعريف متغير يعبر عن حقول الجدول الثاني



2 - اضغط على زر إنشاء قاعدة البيانات ثم أكتب الكود التالي :


CODE

CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
Dim a, r
Dim s As String
s = App.Path & \"\\" & \"students.mdb\" '
Set ws = DBEngine.Workspaces(0)
a = Dir(s) 'للبحث عن ملف قاعدة البيانات في مسار معين
If a = \"\" Then 'الملف غير موجود
Set db = ws.CreateDatabase(s, dbLangGeneral) 'إنشاء قاعدة البيانات
Else
r = MsgBox(\"قاعدة البيانات موجودة هل تريد استبدالها\", vbYesNo, \"استبدال\")
If r = vbYes Then
Kill (s) 'حذف قاعدة البيانات
Set db = ws.CreateDatabase(s, dbLangGeneral) 'أعادة الإنشاء
Else
Exit Sub
End If
End If



ملاحظات على الكود السابق

1 - جملة App.Path ترجع بمسار الملف وفي هذه الحالة يفضل وضع ملف قاعدة البيانات في نفس مجلد البرنامج
2 - جملة DBEngine وهو محرك قاعدة البيانات الخاص بقادة البيانات اكسس
3 - جملة CreateDatabase تنشأ قاعدة البيانات الجديدة والجملة تكتب على الشكل

CODE

CODE:
0001
Set database = workspace.CreateDatabase (name, locale, options)


Name : اسم ومسار قاعدة البيانات
Local : لغة قاعدة البيانات
Option : مجموعة من الإختيارات مثل التشفير وأصدارقاعدة البيانات ....
4 - جملة Dir(path) للبحث عن ملف لمسار معين
5 - حملة kill(path) لحذف ملف من خلال مسار معين .


إنشاء الجداول باستخدام الكود

يتم إنشاء الجداول باستخدام الكود حيث نحتاج في بعض الأحيان إلى إنشاء جدول إثناء التنفيذ فيتم كما يلي .... اضغط على الزر إنشاء الجداول

CODE


CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
Dim s As String
s = App.Path & \"\\" & \"students.mdb\"
Set ws = DBEngine.Workspaces(0)
Set db = ws1.OpenDatabase(s)
Set tbl1 = db.CreateTableDef(\"st_inf\")
Set f1 = tbl1.CreateField(\"st_no\", dbInteger)
Set f2 = tbl1.CreateField(\"st_name\", dbText, 40)
Set f3 = tbl1.CreateField(\"address\", dbText, 40)
Set f4 = tbl1.CreateField(\"phone\", dbText, 40)
Set f5 = tbl1.CreateField(\"b_date\", dbDate)
tbl1.Fields.Append f1
tbl1.Fields.Append f2
tbl1.Fields.Append f3
tbl1.Fields.Append f4
tbl1.Fields.Append f5
db1.TableDefs.Append tbl1


حيث يتم فتح قاعدة البيانات التي تم إنشائها ثم إنشاء الجداول وإنشاء الحقول بإضافة اسم الحقل ونوع البيانات وحجم الحقل ثم إضافة الحقول إلى الجدول ولإضافة الجدول إلى قاعدة البيانات بعد ذلك .


التعامل مع قاعدة البيانات التي تم إنشائها

1 - في الحدث Form Load للنموذج يتم فتح قاعدة البيانات والجداول المراد استخدامها داخل النموذج
ويفضل إنشاء ملف برمجة حيث تعرف فيه متغير قاعدة البيانات ومتغير مجموعة العمل حتى يمكنك استخدامها داخل البرنامج بالكامل دون تعريفها في كل نموذج ويتم فتح قاعدة البيانات في حدث التحميل للشاشة الرئيسية للبرنامج كالتالي :
اضغط على مكان خالي بالنموذج مرتين ثم اكتب الكود التالي

CODE

CODE:
0001
0002
0003
Dim s as string
S = app.path & \"\students.mdb\" هذا المتغير يعبر عن مسار قاعدة البيانات المراد فتحها
Set db = OpenDatabase(S) هذه الجملة لفتح قاعدة البيانات



2 - بعد ذلك افتح الجدول المطلوب في كل شاشة من شاشات البرنامج يتم تعريف متغير للتعبير عن الجدول عند التعامل معه مثل RS حيث يوضع التعريف التالي في منطقة تعريف المتغيرات في النموذج
Dim RS as DAO.Recorset
ثم بعد ذلك يتم فتح الجدول في أي مكان نريد استخدامه

CODE

CODE:
0001
0002
Set rs = db.OpenRecordset(\"st_info\", dbOpenDynaset)


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


أنواع السجلات التي يمكن فتحها بالكائن DAO

النوع الأول Table Recordset

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

مميزاته
1 - استخدام نظام الفهرسة INDEX
2 - إتاحة عمليات بحث سريعة

عيوبه
1 - عدم إمكانية إنشاء تصفية للسجلات
2 - استخدام تعليمة SEEK في البحث وهى تبحث عن السجل الأول فقط
3 - عدم استخدام تعليمة البحث FIND التي يمكن أن توجد عدد كبير من السجلات
ولفتح جدول باستخدام هذا النوع نستخدم الجملة التالية

CODE

CODE:
0001
0002
Set rs = db.OpenRecordset(\"st_info\", dbOpenTable)




النوع الثاني DyanaSet Recordset

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

مميزاته
1 - إمكانية ربط البيانات في أكثر من جدول
2 - إمكانية استخدام الأمر FIND في البحث عن السجلات
3 - إمكانية عمل تصفية للسجلات

عيوبه
1 - لا يستخدم الفهارس INDEX
2 - لا يتيح تعديل السجلات أو حذفها بسهولة
لفتح جدول باستخدام هذا النوع من السجلات نستخدم الجملة التالية

CODE

CODE:
0001
0002
Set rs = db.OpenRecordset(\"st_info\", dbOpenDynaset)




النوع الثالث : SnapShot Recordset

وهى عبارة عن صورة من الجدول كما هو وهي للقراءة فقط

مميزاته
1 - إمكانية ربط أكثر من جدول
2 - إمكانية استخدام أمر البحث FIND
3 - سرعة البحث للسجلات لأنها في الذاكرة

عيوبه
1 - عدم إمكانية تحديث وتعديل البيانات لأنها للقراءة فقط
2 - عدم إمكانية استخدام الفهارس
3 - استهلاك الذاكرة وخاصة عند فتح أكثر من جدول
لفتح جدول باستخدام هذا النوع من السجلات نستخدم الجملة التالية

CODE

CODE:
0001
0002
Set rs = db.OpenRecordset(\"st_info\", dbOpenSnapShot)

الكاتب: LaSer_26 انقر هنا لمراسلة LaSer_26 أنقر هنا للإنتقال إلى موقع LaSer_26 إضافة للمفضلة إضافة لمفضلة Google إضافة لمفضلة Delicious إضافة لمفضلة Digg إضافة لمفضلة Facebook
خيارات الدرس : ارسل الدرس لصديق ارسل الدرس لصديق  طباعة الدرس طباعة الدرس  حفظ الدرس كملف Word حفظ الدرس كملف Word 



 

مكتبة الصور

مكتبة الصوتيات

مكتبة البطاقات

مكتبة الأخبار

مكتبة الفيديو

مكتبة الفلاشيات

مكتبة الجوال ألعاب الجوال نغمات الحمية والرجيم موسوعة الاعشاب تطوير الذات
ديوان الشعر عالم الجنس عالم المرأة الأذكار شرح البرامج

قنوات فضائية

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

مجلة قصيمي نت

موسوعة الكتب