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

  الدرس السابع انشأ برنامجك بالفيجوال بيسك  أضيف في: 6-12-1426هـ
الحلقة السابعة
التعامل مع الكائن ActiveX Data Object (ADO)
حيث حان الوقت لندخل لعالم البرمجة الحقيقية حقيقية أخواني ستجدوا مع هذا الكائن الرائع المتعة الكاملة وحان الآن أيضا للتحول من الكائنات القديمة DAO,RDO إلى هذا الكائن الذي به جميع الإمكانيات التي بالكائنين السابقين وأكثر 0
وسبب التأخر في هذه الحلقة أني كنت سأكتب موضوعين قبل هذا الموضوع كتهيئة لهذا الكائن فكنت سأتناول مجموعة من الأدوات التي تتعامل مع قاعدة البيانات مثل Data list و data Combo وdata Grid و Flex grid وكذلك كنت سأخصص حلقة عن جمل SQL داخل الفيجوال ولكن قلت نبدأ بالكائن ثم نخصص هاتين الحلقتين للكائن ADO فهيا بنا الى هذا الكائن .

http://www.arabteam2000.com/picload/Files/1_21220052331410.4810755.JPG
خطوات التعامل مع الكائنات ADO
الخطوة الأولى :
تعريف الكائنات ADO مثلما تم مع الكائن DAO في مرجع البرنامج References كالتالي :
1 - اضغط قائمة Project واختار References
2 – من الشاشة التي تظهر أختار الكائنين

MICROSOFT ACTIVE X DATA OBJECT 2.5 LIBRARY
MICROSOFT ACTIVE X DATA OBJECT RECORDSET 2.5 LIBRARY

http://www.arabteam2000.com/picload/Files/2_21220052335230.9105188.JPG
الخطوة الثانية :
إنشاء قاعدة البيانات عن طريق برنامج MICROSOFT ACCESSأو برنامج SQL Server أو برنامج Oracle وسوف نتناول كيفية التعامل مع الأنواع الثلاث وهذه هي الميزة الرائعة للكائن ADO والذي يمكنك من التعامل مع عدد ضحم من برامج قواعد البيانات الضخمة .
الخطوة الثالثة :
تصميم النموذج بوضع مربعات نصوص تعبر عن حقول الجدول المراد استخدامه ووضع أزرار الأوامر المراد استخدامها في النموذج مثل ( إضافة – بحث 0000) كما صنعنا في شاشة بيانات الطلاب .
الخطوة الرابعة
تعريف متغيرات تعبر عن قاعدة البيانات والجدول التي ستستخدمها ويفضل أنشاء ملف برمجة Module لنعرف فيه كائن قاعدة البيانات كالتالي :

CODE

CODE:
0001
0002
public db as New ADODB.Connection



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

CODE

CODE:
0001
0002
Dim rscust As New ADODB.Recordset
dim rsitem as New ADODB.Recordset



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

CODE

CODE:
0001
0002
0003
0004
0005
dim s as string
S = \"provider =microsoft.jet.OLEDB.4.0;”
S = s & \"data source=\" & App.Path & \"\students.mdb\"
db.ConnectionString = s
db.Open




ملاحظات على الكود السابق
1 – المزود Provider وهو اسم السائق الخاص بكائن الاتصال بقاعدة البيانات OLEDB والذي سيستخدمه الكائن ADO للوصول لقاعدة البيانات وهو هنا مع برنامج ميكروسوفت أكسس يكون microsoft.jet.OLEDB.4.0
2 – Data Source يوضع فيه مسار قاعدة البيانات حيث يمكنك وضع المسار الكامل لقاعدة البيانات مثل "c:\data base\students.mdb" أو استخدام الدالة App.path إذا كانت قاعدة البيانات مخزنة في نفس مجلد البرنامج .
3 – Connectionstring هي الجملة التي تزود لقاعدة البيانات المزود المستخدم ومسار واسم قاعدة البيانات ويمكنك كتابة الجملة مباشرة كالتالي
db.connectionstring = "provider = microsoft.jet.OLEDB.4.0;” & "data source=" & App.Path & "\students.mdb"
4 – ثم بعد ذلك يتم فتح قاعدة البيانات باستخدام الطريقة Open
ثانيا : كود فتح قاعدة البيانات SQL Server

CODE

CODE:
0001
0002
0003
0004
0005
Dim S As String
S = \"provider = SQLOLEDB.1;user ID = sa;password =;\"
S = s & \"Initial Catalog =students;\" & data source =nasser\"
db.ConnectionString = s
db.Open




ملاحظات على الكود السابق
1 – المزود Provider وهو اسم السائق الخاص بكائن الاتصال بقاعدة البيانات OLEDB والذي سيستخدمه الكائن ADO للوصول لقاعدة البيانات وهو هنا مع برنامج SQL server يكون SQLOLEDB.1 .
2 – رقم المستخدم User ID وهو رقم تعريف المستخدم لقاعدة البيانات حيث رقم المستخدم الافتراضي هو sa حيث من خلاله يمكنك وضع الحقوق والصلاحيات للوصول لقاعدة البيانات لكل مستخدم .
3 – كلمة المرور Password وهي تستخدم للتحقق من المستخدم وإذا كنت تود استخدام الأمن المتكامل في ويندوز 2000 أو ويندوز NT فنستخدم بدلا من رقم المستخدم وكلمة المرور user ID = sa ;password = نستخدم الجملة Integrated Security = SSPI
4– Data Source يوضع فيه اسم خادم SQL Server الذي تستخدمه فعند التعامل مع SQL Server حتى تستطيع إنشاء قاعدة بيانات يجب أن تعرف خادم قاعدة البيانات ويكون له اسم وغالبا يأخذ نفس اسم الجهاز وليكن هنا Nasser فإذا كنت تنشأ برنامج لشبكة شركة يجب أن تعرف من مدير الشبكة اسم خادم قاعدة البيانات .
5 - Initial Catalog وهي الميزة الرائعة لقاعدة البيانات SQL Server أن قاعدة البيانات لا تخزن في ملفات منفصلة بل تخزن على الخادم الرئيسي والذي يمكن الوصول إليه من أي جهاز عميل وهنا تضع اسم قاعدة البيانات المنشأة على الخادم Students ويوضع بدون مسار .
6 – Connectionstring هي الجملة التي تزود لقاعدة البيانات المزود المستخدم .
7 – ثم بعد ذلك يتم فتح قاعدة البيانات باستخدام الطريقة Open .
الخطوة السادسة
فتح الجدول المطلوب وكما قلنا سابقا انه يتم تعريف متغير لكل جدول ستستخدمه ويوضع التعريف في منطقة تعريف المتغيرات في أعلى النموذج ثم يتم فتح الجدول المطلوب بكتابة الكود التالي :

CODE

CODE:
0001
0002
If rsst.State = adStateOpen Then rsst.Close
rsst.Open \"st_inf\", db, adOpenDynamic, adLockOptimistic




ملاحظات على الكود السابق
1- حيث السطر الأول يتأكد أن الجدول غير مفتوح فإذا كان مفتوح يتم إغلاقه حتى لا يحدث خطأ أنك تقوم بفتح عنصر مفتوح قبل ذلك .
2 - والسطر الثاني جملة فتح جدول وهي تحتوي على أربع بارامترات
الأول : اسم الجدول المراد فتحة ويوضع بين علامتي تنصيص وإن كان الاسم يحتوي على كلمتين منفصلتين ينبغي وضعه بين قوسين"[st Info]" .
الثاني : اسم قاعدة البيانات التي تستخدمها وهنا نضع المتغير الذي استخدمناه .
الثالث : نوع المؤشر courser type أو نوع السجلات وهنا يوجد أربعة انواع من المؤشرات أو السجلات
ملاحظة : يطلق على مجموعة الصفوف العائدة من الجدول اسم السجلات عند استخدام أكسس أو المؤشرات عند استخدام SQL Server .
النوع الأول DYNAMIC RECORDSET
وهذا النوع من أكثر الأنواع مرونة حيث يتم التعامل مع السجلات عن طريق مؤشرات تعبر عن السجلات الحقيقة في الجدول ولذلك تستهلك مقدار من الذاكرة
ويتم استخدام هذا النوع كالتالي

CODE

CODE:
0001
rs.Open \" st_inf \", db, adOpenDynamic, adLockOptimistic




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

CODE

CODE:
0001
rs.Open \" st_inf \", db, adOpenForeardonly, adLockOptimistic




النوع الثالث : KEYSET RECORDSET
يشبه نوع السجلات Static ولكن يتميز عنه قدرته على رؤية التغييرات التي تتم على السجلات ويمكن التحرك داخل السجلات للمام وللخلف يتم فتح هذا النوع من السجلات كالتالي

CODE

CODE:
0001
rs.Open \" st_inf \", db, adOpenKeyset, adLockOptimistic




النوع الرابع : STATIC RECORDSET
وهو يشبه إلى حد بعيد Snapshot في كائنات DAO وهو للقراءة فقط ولا يرى التعديلات التي تقع على السجلات ويمكن فتح هذا النوع من السجلات كالتالي
rs.Open " st_inf ", db, adOpenStatic, adLockOptimistic
الرابع : وهو نوع التزامن المطلوب للسجلات
هناك أربع أنواع للتزامن عند التعامل مع السجلات
حيث التزامن يقصد به نفس المفهوم للتزامن في الشبكات حيث إذا كان قام عميل أثناء عدم الاتصال بعرض بيانات وتم تعديلها أثناء عدم الاتصال فإن البيانات سيتم تحديثها بعد الاتصال مباشرة
AdLockReadOnly
حيث يتم فتح السجلات للقراءة فقط حيث لا يستطيع المستخدم تعديل السجلات أو تحديثها ويمكن لأكثر من مستخدم قراءة نفس السجلات في نفس الوقت .
AdLockPessimistic
وهو شكل صارم حيث يتم إغلاق السجل عندما يبدأ البرنامج بالتعامل معه حيث يمكن للمستخدمين الآخرين قراءة السجل ولا يمكنهم التعديل فيه أثناء تعديل البرنامج له وبعد تعامل البرنامج مع السجل يتم تحرير القفل ويستطيع المستخدمون الآخرون التعامل مع السجل وعرضه .
AdLockOptimistic
حيث يتم وضع أقفال لفترة صغيرة على السجلات أثناء تحديثها وهذا النوع الأكثر شيوعا والأفضل حيث يتم استخدامه بصورة دائمة ولكنه بطيء بعض الشيء .
AdLockBatchOptimistic
نفس النوع السابق ولكن يستخدم مع مجموعة السجلات المفصولة حيث يتم فصل السجلات للتعديل من العميل ثم يقوم بالاتصال بالملقم لحفظ التعديلات على قاعدة البيانات .

الكاتب: LaSer_26 انقر هنا لمراسلة LaSer_26 أنقر هنا للإنتقال إلى موقع LaSer_26 إضافة للمفضلة إضافة لمفضلة Google إضافة لمفضلة Delicious إضافة لمفضلة Digg إضافة لمفضلة Facebook
 



 

المنتديات

الأذكار

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