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

شرح لدالة لو تكرمتم ..

بدأه khalid0909 في 25 مايو 2008 · 1 رد · 736 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
اقتباس
Function open_rs

Public Function open_rs(sql As String, rs As ADODB.Recordset) 'As ADODB.Recordset

If rs.State = 1 Then rs.Close

If rs.State = 0 Then rs.Open sql, con_db, adOpenStatic, adLockReadOnly Else rs.Requery

End Function

هل بالإمكان شرح هذا الكود؟؟

وهو موجود في الموديول

تم تعديل هذه المشاركة بواسطة khalid0909 في 25 مايو 2008 في 01:33

#2

السلام عليكم...

الأخ khalid0909... في الواقع الكود المكتوب يمثل إجراءاً رغم أنه مكتوب بصيغة الدالة. على أية حال هذا الكود يقوم بفتح مجموعة السجلات الممثلة بالبارامتر rs حسب جملة SQL الممثلة بالبارامتر sql.

السطر الأول If rs.State = 1 Then rs.Close يتأكد من حالة مجموعة السجلات (Recordset) قبل فتحها فإذا كانت مفتوحة سابقاً (State = 1) فإنه يتم إغلاقها لأن مكتبة ADODB تولد خطأ إذا حاولنا فتح مجموعة سجلات مفتوحة سابقاً.

السطر الثاني يختبر ما إذا كانت مجموعة السجلات (rs) مغلقة (State = 0) فإنه يقوم بفتحها باستعمال المنهج Open، أما إذا لم تكن مغلقة فإنه يقوم بتحديثها باستعمال المنهج Requery.

المنهج Open يحتاج إلى البارامترات التالية:

1. اسم جدول أو جملة SQL، و هي ممثلة في الكود بالبارامتر sql.

2ز اسم كائن ربط (ADODB.Connection object) مفتوح سابقاً أو جملة اتصال بقاعدة البيانات (ConnectionString)، و هو ممثل في الكود بالبارامتر con_db.

3. نوع مجموعة السجلات، و هو ممثل في الكود بالثابت adOpenStatic.

4. طريقة قفل السجلات و هي ممثلة في الكود بالثابت adLockReadOnly (أي أن مجموعة السجلات مفتوحة للقراءة فقط و لا يمكن إجراء تعديلات عليها).

5. بارامتر غير مذكور في المثال يحدد محتوى البارامتر الأول (sql) فإذا كان sql يحتوي فقط على اسم جدول فإننا نستعمل الثابت adCmdTable و إذا كان sql يحتوي على جملة SELECT فإننا نستعمل الثابت adCmdText.

Public Sub open_rs(sql As String, rs As ADODB.Recordset)
	If rs.State = 1 Then rs.Close 
	If rs.State = 0 Then rs.Open sql, con_db, adOpenStatic, adLockReadOnly, adCmdText Else rs.Requery
End Sub

*** بالنسبة إلى الثوابت المستعملة و معنى كل منها ينصح بالعودة إلى MSDN Help.

نرجو الاستفادة و السلام

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

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