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

سؤال في ال ADO

مغلق
بدأه زائر في 10 أبريل 2001 · 4 رد · 946 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الإخوة الكرام

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

فأرجوا المساعدة لأنني أود أن أتعلم الـ ADO

هذا مثال على الفتح في ريكوردست أخذته من تعليمات أكسس

أريد أن أعرف معنى وفائدة ما بين الحاجزين وياليت شرح المثال بالكامل

وجزاكم الله خيرا

أخوكم

أحمد الحربي

Public Sub OpenX()

Dim cnn1 As ADODB.Connection
Dim rstEmployees As ADODB.Recordset
Dim strCnn As String
Dim varDate As Variant

==========================================
' Open connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
===========================================

Set cnn1 = New ADODB.Connection
cnn1.Open strCnn

' Open employee table.
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "employee", cnn1, , , adCmdTable

' Assign the first employee record's hire date
' to a variable, then change the hire date.
varDate = rstEmployees!hire_date
Debug.Print "Original data"
Debug.Print " Name - Hire Date"
Debug.Print " " & rstEmployees!fName & " " & _
rstEmployees!lName & " - " & rstEmployees!hire_date
rstEmployees!hire_date = #1/1/1900#
rstEmployees.Update
Debug.Print "Changed data"
Debug.Print " Name - Hire Date"
Debug.Print " " & rstEmployees!fName & " " & _
rstEmployees!lName & " - " & rstEmployees!hire_date

' Requery Recordset and reset the hire date.
rstEmployees.Requery
rstEmployees!hire_date = varDate
rstEmployees.Update
Debug.Print "Data after reset"
Debug.Print " Name - Hire Date"
Debug.Print " " & rstEmployees!fName & " " & _
rstEmployees!lName & " - " & rstEmployees!hire_date

rstEmployees.Close
cnn1.Close

End Sub
#2

إن ADO هي مكتبة ActiveX يتم تشغليها بتشغليل الكائن adodb.Connection و ظيفه هذا الكائن الإتصال بقاعدة البيانات عبر ODBC أو OLEDB . و هذا ما يعطيه الصفة المنفتحة فلا يتقيد بأي قاعدة بيانات لطالما لها مشغل في OLEDB أو ODBC .

dawp30.gif

أما للتعامل مع المعلومات فتتم بواسطةالكائن adodb.Recordset و يمكن تشغيل هذا الكائن مباشرة من adodb.Connection أو عبر الكائنadodb.Command .

وإذا راقبت المثال الذي طرحته إنك تراه يبدأ بتشغيل adodb.Connection بالطريقة التالية :

Set cnn1 = New ADODB.Connection

cnn1.Open strCnn

حيث أن strCnn هو متحول نص قد قمت سابقا بتعريفه (وهو لب سؤالك)

strCnn هو نص يحتوي التعرفات التي تقدم للكائن ليحقق الإتصال مع قاعدة البيانات و في مثالنا يتم الإتصال مع MS-SQL Server بواسطة OLEDB Provider اسمه sqloledb و هو الذي يحقق الإتصال مع MS-SQL Server

Data Source=srv أي أن اسم السيرفر هو svr

Initial Catalog=pubs اسم قاعدة البيانات و هو pubs

User Id=sa اسم المستخدم و هو sa (عادة يكون sa هو اسم المسؤول في MS-SQL Server)

Password= كلمة المرور وهنا كما نلاحظ لا يوجد أي كلمة مرور .

طبعا أيضا نلاحظ أن بين التعريف و التعريف يوجد فاصلة منقوطة للتفريق .

إذا كان من المربك تشكيل هذا المتحول فإليك الطريقة التالية :

1- أنشئ ملف نصي وأجعل ملحقه udl . مثال MyDB.udl .

2- إفتح هذا الملف بالنقر المزدوج ، فسيفتح لك نافذة تسمى Data Link Properties، و من خلالها تستطيع أن تختار قاعدة البيانات التي تريد ثم إضغط Ok.

3- إفتح نفس الملف بواسطة أي محرر نصوص وليكن notepad .

4- و حسب مثالنا ستجد أنه يحوي المعلومات التالية :

oledb]

; Everything after this line is an OLE DB initstring

Provider=SQLOLEDB;Data Source=svr;User ID=sa;Initial Catalog=pub;

فما عليك إلا أن تنسخ السطر الأخير فهو يحوي النص المطلوب .

أما بالنسبة لباقي المثال

فستلاحظ أنه قام بإنشاء و تشغليل adodb.Recordset بالطريقة التالي :

Set rstEmployees = New ADODB.Recordset

rstEmployees.CursorType = adOpenKeyset

rstEmployees.LockType = adLockOptimistic

rstEmployees.Open "employee", cnn1, , , adCmdTable

أما الباقي فلا أعتقد بأنه سيصعب عليك فهمه .

للمزيد من المعلومات عن ADO يمكنك الرجوع إلى :

http://msdn.microsoft.com/library/psdk/das...dk/ados4piv.htm

و للمزيد عن OLEDB :

http://msdn.microsoft.com/library/psdk/das...dk/oled0cs7.htm

#3

هذا الشرح ولا بلاش

مشكور جدا استاذ انس على ها الشرح الرائع

مع تحياتي

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

#4

تحياتي لك أخي أنس

وصلتني رسالتك، وأتمنى أن تظل معنا في هذا المنتدى دوماً

مجدداً لك أطيب تحياتي

#5

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

هل يمكن استخدام ADO من داخل قاعدة البيانات لأتجول عبر السجلات وأحرر ما أشاء لأني فهمت من شرحك أنك تدخل من برنامج آخر مثل الفيجوال بيسك . فإذا كان الجواب بنعم فكيف مع أني قرأت أنها بديلاً عن DAO . وشاكراً لك ما تفضلت وتتفضل به

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

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