فروم تخصصی - پشتیبانی CPSD
آموزش ADO , ActiveX Data Objects - نسخه‌ی قابل چاپ

+- فروم تخصصی - پشتیبانی CPSD (http://cpsd.ir/forum)
+-- انجمن: آموزش (/forumdisplay.php?fid=9)
+--- انجمن: عمومی (/forumdisplay.php?fid=21)
+--- موضوع: آموزش ADO , ActiveX Data Objects (/showthread.php?tid=26)



آموزش ADO , ActiveX Data Objects - CPSD Admin - ۲ مهر ۱۳۸۹ ۰۶:۲۴ عصر

[تصویر:  AdoCourse_CPSD.IR.png]


سلام

با ورود به این مبحث فصل جدیدی از دوران برنامه نویسی در مقابل بسیاری از کاربرانی که تاکنون تنها اقدام به کدنویسی JET Base کرده بودن باز خواهد شد

با اطلاعات برنامه نويسي اونهم در حد متوسط اين امكان وجود داره كه شما اقدام به ، به كارگيري توان بالقوه ActiveX Data Object و يا همون ADO كنيد

ولی پیش نیاز اون آشنایی کامل با خود آبجکتهای استاندارد Access هستش

از طريق ADO شما امكان اتصال و مديريت طيف وسيعي از گونه هاي متفاوت ديتا بيسها و از اون جمله اكسس رو خواهید داشت

ADO يكي از مدلهاي قدرتمند برنامه نويسي مختص ديتا بيسها رو پوشش ميده ، بك مدل برنامه نويسي مبتني بر شي هستش كه در بسياري از زبانهاي برنامه نويسي پشتيباني ميشه ( ميشه گفت در كليه زبانهاي برنامه نويسي مطرح اين امر محقق ميشه )

ADO خصوصاً در نسخه هاي جديد مايكروسافت آفيس تبديل به روشي قابل اتكا و به تبع اون با اهميت مضاعف در اتصال و مديريت پايگاههاي داده شده

Data Source ها گونه هاي متفاوتي رو در بر ميگيرن ، از يك فايل Text ساده تا نمونه هاي پيچيده از بانكهاي اطلاعاتي رابطه اي همچون اكسس

در مجموع ADO قابليت اتصال به كليه ديتابيسهاي معتبر و عمومي رو داره

ADO قابليت بهينه سازي و افزايش توان عملياتي SQL رو هم با خودش به همراه مياره

هر گونه برنامه نويسي مبتني بر اين مدل ، در واقع به نوعي تلاش و جدل با ADO API هستش

توضيح : يك API و يا Application Programming Interface در واقع مجموعه اي از نماها و يا كلاسهايي هستند كه به شما اين اجازه رو ميدن تا اقدام به برقراري و ارتباط با دستوراتي پيچيده ، در قالبي ساده داشته باشيد

البته نحوه فراخواني و درج دستورات ADO در زبانهاي برنامه نويسي مختلف تا حدودي با همديگه متفاوته كه ما در اينجا مبحث رو حول به كارگيري اون در Access VBA پيش رو داريم

متاسفانه اين مبحث از وسعت بسيار زيادي برخورداره كه در اين سلسله مقالات فرصت زماني به گونه اي هستش كه تنها امكان بررسي برخي روشها وجود داره پس اگر با گونه هاي متفاوتي از كدنويسي روبرو شديد نگران نباشيد ، يك رويه رو يادبگيريد و همون رو ادامه بديد

خدانگهدار


آموزش ADO بخش دوم - CPSD Admin - ۲ مهر ۱۳۸۹ ۰۶:۳۷ عصر

ضمن سلام مجدد

بخش دوم آموزش برنامه نویسی ADO در مابکروسافت اکسس رو با هم پیش میگیریم

در این بخش شما رو به صورت مختصر , با واژه هاي كليدي مبحث ADO آشنا ميكنم ، به مرور با اين واژها و نحوه به كارگيري اونها بيشتر آشنا خواهيد شد و در اينجا تنها اين نياز وجود داره كه شما با كليات و تعاريف آشنا بشيد و بس

در تصویر زیر ساختار آبجکتهای اتصال در ADODB رو ملاحظه میکنید و در ادامه توضیحاتی مختصر در خصوص هر یک :

[تصویر:  ADODB_CPSD.IR.png]


Connection

نحوه رسيدن و دسترسي به Data Source در واقع توسط اين آبجكت تعريف ميشه ، شما در اين آبجكت مسير رو تعريف خواهيد كرد ، نحوه اتصال و شرايط برقراري اين اتصال رو كنترل ميكنيد

Command

دستورات و عملياتي كه بايد بر روي ديتابيس به انجام برسه رو از طريق اين پروسه به انجام ميرسونيد ، فرضاً يك دستور SQL رو به اجرا در مياريد تا اطلاعاتي رو حذف و يا به روز رساني كنه

پس شما توسط آبجكت Command ، دستورات ADO رو به مرحله عمل در مياريد

Field

ركوردستهاي ADO شامل يك و يا چند فيلد هستند ، فيلدها در ADO توسط آبجكت Field مورد هدف قرار ميگيرن ، توسط اين آبجكت شما قادر به انجام بسياري اعمال در خصوص فيلدهاي اطلاعاتي خواهيد بود

Parameter

اين آبجكت در ارتباطي مستقيم با آبجكت Command قرار داره ، و به شما اين امكان رو ميده كه پارامتري رو به صورت يك متغير به يك دستور SQL صادر كنيد

ADO از Parameter جهت انتقال يك متغير ورودي به يك پرس و جوي پارامتريك استفاده ميكنه

Recordset

اطلاعات برگردانده شده از سوي دستوري ، فرضاً از گونه SQL در ركورد ست ذخيره ميشه ، شما با كمك آبجكت Recordset قادر خواهيد بود در اطلاعات برگردانده شده تغييرات مورد نطرتون رو اعمال كنيد


توجه :
واژه آبجكت در مبحث فوق مورد تاكيد واقع شده ، متاسفانه اين تصور نادرست در بين برخي برنامه نويسان و كاربران وجود داره كه آبجكت و يا شي ، تعريفي با اشاره به ماهيتي فيزيكي و قابل روئیت هستش ! به طور مثال خيلي ار كاربران يك دكمه رو كه با كشيدن در داخل يك فرم طراحي ميشه و يا آبجكتهايي از اين دست رو ، مبناي شي بودن ميدونن

اين احتمال وجود داره كه در آينده مطالبي در خصوص همين مبحث و در واقع برنامه نويسي مبتني بر شي گرايي – OOP در اکسس ، درج كنم

در حال حاضر تنها به همين امر بسنده كنيد كه كليه موارد فوق آبجكت بوده و با تعاريف ابن مبحث سازگار هستند

موفق باشید



آموزش ADO بخش سوم - CPSD Admin - ۲ مهر ۱۳۸۹ ۰۶:۴۴ عصر

سلام

بخشی دیگه از آموزش برنامه نویسی ADO رو در پیش میگیریم

توجه : در تمامي مراحل اين توجه رو داشته باشيد از آنجايي كه دستورات ADO بر مبناي كتابخانه ADO نوشته ميشن ، به همين جهت از در انتخاب بودن كتابخانه Microsoft ActiveX Data Objects X.X Library اطمينان حاصل كنيد

Tools > References


X.X اشاره به نسخه مورد نظر از كتابخانه مورد استفاده داره .

قبل از اينكه شما به كمك ADO بتونيد اقدام به كار با اطلاعات كنيد لازمه كه در ابتدا اقدام به استقرار و برپايي يك ارتباط با ديتابيس مورد نظر داشته باشيد

همونطوري كه در قبل هم گفته شد ، شما اين كار رو به كمك آبجكت Connection به انجام ميرسونيد

از اونجا كه ADO قابليت اتصال به ديتا بيس كنوني ( ديتابيسي كه در حال حاضر در داخل اون هستيم ) و يا اتصال به ديتابيسهاي راه دور رو داره به همين جهت برخي مثالها در هر دو حالت مورد بررسي قرار ميگيرن

توضيح : اتصال راه دور رو به جايگريني اصطلاح Remote Connection به كار برديم ، در اين گونه اتصال فرض رو بر اين قرار ميديم كه شما به ديتابيسي غير از ديتا بيس جاري متصل ميشيد

در مثال اول نگاهي به نحوه اتصال به ديتابيسي كه در داخل اون هستيد و یا همون دیتابیس جاری ميندازيم تا با كليات اين نوع اتصال آشنا بشيد

در ابتدا اقدام به معرفي يك متغير ميكنيم كه بتونيم اين آبجكت رو معرفي و در مواقع لزوم بارگذاري و احيا كنيم

به كتابخونه ADODB وصل ميشيم و از داخل اون آبجكت Connection رو انتخاب ميكنيم پس متغیر رو معرفی میکنیم :

Dim localConnection As ADODB.Connection

اين دستور اقدام به معرفي يك متغير با نام localConnection و از نوع ADODB.Connection ميكنه

نام localConnection اختياري هستش و ميتونيد با توجه به نياز خودتون نام مناسبي رو انتخاب كنيد ولي نوع متغير كه ADODB.Connection هستش الزاماً بايستي به همين طريق معرفي بشه

در بخش بعدي شما نياز داريد كه توجه برنامه رو به سوي اين اتصال هدايت كنيد و آبجكت رو برپا كنيد ، از واژه كليدي Set جهت استقرار و بارگذاري آبجكت در حافظه سيستم كمك ميگيريم و آبجكت رو ايجاد ميكنيم

Set localConnection = CurrentProject.AccessConnection

به بخش دوم دستور توجه كنيد ، CurrentProject اشاره به پروژه جاري داره ، يعني همون پروژه اي كه در حال كار در داخل اون هستيم

در اينجا و در این مرحله فقط به صدور يك پيغام مبني بر موفق بودن اتصال اشاره ميكنيم

دستور كامل به صورت زير نوشته ميشه كه اون رو در داخل رويداد كليك يك دكمه پياده سازي كرديم
کد:
Private Sub cmdConnectToLocalDB_Click()

On Error GoTo ConnectionError

Dim localConnection As ADODB.Connection

Set localConnection = CurrentProject.AccessConnection

MsgBox “Local connection successfully established.”

Exit Sub

ConnectionError:

MsgBox “There was an error connecting to the database. “ & Chr(13) _

& Err.Number & “, “ & Err.Description

End Sub

توجه كنيد در هنگام كار با Connection ها و در مجموع هر گونه مدل برنامه نويسي ديتا بيس فرآيند Error Handler فراموش نشه ، کلیه خطاها بایستی مدیریت شده و به نحوی مناسب مورد تحلیل قرار بگیرن

عدم كنترل مناسب خطاها ميتونه منجر به بروز خطاهايي گاهاً مشكل ساز بشه

موفق باشید



آموزش ADO بخش چهارم - CPSD Admin - ۲ مهر ۱۳۸۹ ۰۶:۵۲ عصر

ضمن سلام , با هم نگاهی به بخش چهارم آموزش برنامه نویسی ADO میندازیم

يك واقعيت وجود داره كه دلايل استفاده ADO در ديتابيسي كه اصطلاحاًً اون رو تك فايل ميناميم شايد موارد استفاده بسیار محدودي رو در بر بگيره ( برنامه ای که تنها مشتمل بر یک فایل هستش )

قاعدتاً خواستگاه اصلي اين مدل برنامه نويسي , در مدلهاي FrontEnd/BackEnd هستش ( زین پس اون رو به اختصار FEBE می نامیم ) كه در ادامه با تمركز بيشتر بر روي اون به پيش ميريم

متاسفانه اين بخش از وسعت بسيار زيادي برخورداره كه در اين مقاله فرصت زماني به گونه اي هستش كه تنها امكان بررسي برخي روشها وجود داره

در ابتدا با روشي مشابه روش ارائه شده در آموزش بخش سوم , اقدام به معرفي يك متغير ميكنيم كه بتونيم اين آبجكت رو معرفي و در مواقع لزوم بارگذاري و احيا كنيم

تنها در اين نوع اتصال به يك نكته توجه داشته باشيد و اون هم تغييري هستش كه در نوع معارفه به انجام رسونديم

با توجه به اينكه در معماري FEBE و يا به نوعي همون Client/Server ( زین پس اون رو به اختصار CS می نامیم ) ممكنه به صورت همزمان چند اتصال توسط كاربراني متفاوت برقرار بشه ، از اينرو از كليد واژه New استفاده ميكنيم تا به نوعي برنامه رو مجبور به بارگذاري نسخه جديدي از متغير در حافظه سيستم کاربر كنيم


Dim remoteConnection As New ADODB.Connection

در اين مرحله فعاليت اصلي شروع ميشه

در معماري CS و يا FEBE شما نياز داريد به گونه اي يك پل ارتباطي بين بانك اطلاعاتي هدف و برنامه مقصد برقرار كنيد ، اين امر رو به واسطه يك Provider كه به نوعي كار آماده سازی و برقراري ارتباط رو به عهده داره به انجام ميرسه

Provider هاي متفاوت و بسيار گسترده اي در اين بخش قابل اعمال هستن كه در مثال حال حاضر از OLEDB استفاده ميكنيم

يكي از مزاياي اين Provider اينه كه به همراه خود Access نصب ميشه و شما دغدغه اي در خصوص وجود و يا عدم وجود اون بر روی سیستم نهایی کاربر نداريد

پس از تعيين نوع Provider , شما بايد اقدام به معرفي مسير ديتابيس هدف كنيد ، كه اين كار رو بايد به واسطه متد Open به انجام برسونيد ( توجه كنيد در مثال قبلي اين بخش به صورت خودكار به انجام ميرسيد )

نگاهي به مثال زير كنيد و مطالب درج شده فوق رو در داخل اون مورد واكاوي قرار بديد


کد:
Private Sub cmdConnectToRemoteDB_Click()

On Error GoTo ConnectionError

Dim remoteConnection As New ADODB.Connection

With remoteConnection

.Provider = “Microsoft.Jet.OLEDB.4.0”

.Open “Database Address Here ، For Example : C:\Sample.mdb”

End With

MsgBox “Remote connection successfully established.”

remoteConnection.Close

Exit Sub

ConnectionError:

MsgBox “There was an error connecting to the database. “ & Chr(13) _

& Err.Number & “, “ & Err.Description

End Sub

در مثال فوق به دیتابیس فرضی Sample.mdb واقع در ریشه درایو C متصل شدیم

دقت كنيد هر اتصال / Connection پس از انجام عمليات مد نظر شما بايد بسته بشه كه اين امر توسط دستور Close به انجام رسيده

از ساختار With/End With به جهت خلاصه سازي دستور استفاده شده

در فرصتی دیگه و بنا به نیاز در خصوص Provider توضيحات بيشتري ارائه خواهد شد

توضیح : در حال حاضر تنها با مسائل تئوریک آشنا میشیم و نیازی به ارائه مثال وجود نداره

موفق باشید