رفتن به مطلب

مقایسه ADO و ADO.net


ارسال های توصیه شده

شركت مايكروسافت در ويژوال بيسيك ورژن 3 كه در سال 1993 ارائه داد از Jet كه هسته اصلي MS Access بود براي ايجاد ارتباط با بانكهاي اطلاعاتي استفاده نمود البته براي استفاده بهتر برنامه نويسان ، Jet را در غالب مجموعه Object هائي تحت عنوان (Data Access Object ) آورد. در نسخه 4 و 5 ويژوال بيسك ، مایكروسافت روشي ديگر براي ارتباط با بانكهاي اطلاعاتي تحت عنوان Remote Data Object = RDO را مطرح ساخت اين روش براي برنامه نويسي Client / Server روش مناسبي بود.

در دوم سپتامبر سال 1998 وقتي مایكروسافت ويژوال بيسيك ورژن 6 را ارائه داد روش جديدي تحت عنوان ( Activex Data Object ) ADO را مطرح ساخت در اين روش كه پايه و اساس آن OLEDB بود مایكروسافت بر خلاف DAO و RDO كه ساختاري پيچيده و سلسله مراتبي داشتند، از ساختاري ساده و مجزا ( غير سلسله مراتبي ) استفاده كرد و در واقع ADO هم شامل Object هائي است كه برنامه نويس بتواند از آنها براي ايجاد ارتباط با بانكهاي اطلاعاتي و انجام عمليات روي آنها استفاده كند و در تاريخ 13 February سال 2002 كه مایكروسافت نسخه نهائي Visual Basic.Net را ارائه داده روشي جديد براي كار با بانكهاي اطلاعاتي تحت عنوان ADO.Net را آورده است. اين نسخه از ويژوال بيسيك برخلاف نسخه‎هاي قبل بطور كامل مباحث OOP را پشتيباني مي‎كند ( FULL OOP ) در واقع ADO.Net هم مانند ADO و RDO و ADO شامل ساختاري براي ارتباط و انجام عمليات روي بانكهاي اطلاعاتي است. ADO.net همانند RDO و DAO و برخلاف ADO داراي ساختار سلسله مراتبي مي‎باشد. در اين مقاله مي‎خواهيم به مقايسه ADO و ADO.net بپردازيم. ADO در ورژنهاي مختلفي در اين چند سال اخير به بازار آمده است با آمدن SQL Server 2000 ورژن جديد ADO يعني ورژن 2.6 از اين محصول ارائه شد و اكنون هم ADO 2.6 در سايت مایكروسافت قابل Download مي‎باشد.

آخرين ورژن ADO شامل 9 تا Object است كه عبارتند از :

Connection

Command

Recordset

Parameter

Field

Error

Property

Record

Stream

آبجكت Connection امكان ارتباط با Data Source كه شامل بانك اطلاعاتي است را فراهم مي‎سازد. بعنوان مثال اگر بخواهيم از آبجكت Recordset براي اضافه و يا حذف و يا تغيير در محتواي ركوردي استفاده كنيم اين آبجكت از Connection براي ايجاد ارتباط با بانك اطلاعاتي مثلاً SQL Server استفاده مي‎كند اما همانطور كه گفته شد و در شكل ملاحظه مي‎شود ساختار آبجكتهاي ADO بصورت سلسله مراتبي نيست و مي‎‎توان مثلا Recordset اي ايجاد نمود كه مستقل از آبجكت Connection بتواند با بانك اطلاعاتي ارتباط برقرار نمايد.

در ADO علاوه بر آبجكتها، چهار Collection هم ديده مي‎شود كه عبارتند از :

Parameters

Fields

Properties

Errors

كه هركدام از آنها شامل آبجكتهائي از همان نوع هستند بعنوان مثال ساختاري كه براي Recordset كشيده شده بيان كننده آن است كه اين آبجكت شامل Collection هاي Fields و Properties بوده و مثلاً Collection مربوط به Fields شامل آبجكتهاي فيلد است.

آبجكت فيلد اطلاعاتي را راجع به يك ستون از Recordset در خود نگه داشته است.

 

در ADO آبجكت Command هم وجود دارد كه از آن مي‎توان براي اجراي يك فرمان SQL استفاده نمود البته بهترين روش براي اجراي Stored Procedure نيز استفاده از متد Execute مربوط به همين آبجكت است .

بعنوان مثال :

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

از آبجكت Parameter هم براي مشخص كردن مقادير پارامترهاي ورودي يك * Stored Procedure استفاده مي‎كنيم.

آبجكت Property براي استفاده از Dynamic Property استفاده مي‎شود كه Property هايي هستند كه وابسته به Provider بوده و استاندارد نيستند .

از Record براي دسترسي به يك سطر از Recordset و ويژگيهاي مربوط به آن سطر استفاده مي‎كنيم .و آبجكت Stream هم به منظور ذخيره و بازيابي اطلاعات بصورت باينري در يك فيلد از Record در نظر گرفته شده است.

تا اينجا باساختار ADO آشنا شديم حال به تشريح ADO.net مي‎پردازيم .

ADO.Net مجموعه‎اي از Class هاي Interface ها و دستوراتي جهت مديريت و كار با بانكهاي اطلاعاتي است. در بحث Net . مجموعه‎اي از Class هاي مربوط به هم در يك غالب تحت عنوان * Name Space ارائه شده است Net. شامل تعدادي Name Space است كه در غالب .Net Framework قرار دارد. تمام ساختار * ADO.net در چهار NameSpace قرار دارد كه عبارتند از :

System.Data.SqlClient.

System.Data.OleDb.

System.Data.Odbc.

System.Data.

اگر بخواهيم از بانكهاي SQL Server استفاده كنيم System.Data.SqlClient بهترين انتخاب است در اين NameSpace امكاناتي فراهم شده تا بتوانيم Application هاي بنوسيم و در آنها با SQL Server ارتباط برقرار نمائيم بطوريكه برنامه‎ها از Performance بالائي برخوردار باشند.

در صورتي كه كاربر بخواهد از بانكهاي رابطه ‎اي ديگر نظير Oracle استفاده كند ميتواند از System.Data.OleDb بهره گيرد.

System.Data.Odbc براي ارتباط با بانكهاي اطلاعاتي از طريق ODBC ميباشد System.Data هم شامل Provider هاي خاص نظير DataSet و DataTable است. ADO.net نيز شامل Object ها و Collection هائي است كه از مهمترين آنها مي‎توان موارد ذيل را شمرد:

 

OleDBConnection

OleDBCommand

OledbDataReader

OleDBDataAdapter

SelectCommand

InsertCommand

UpdateCommand

DeleteCommand

DataTable

DataRelation

OleDBConnection آبجكتي است شبيه به آبجكت Connection در * ADO ، كه امكان ايجاد ارتباط با بانك را فراهم مي‎سازد اين آبجكت متدهايي براي اجراي فرامين SQL نيز داراست .OleDBCommand هم مشابه آبجكت Command در * ADO مي‎باشد.

از اين آبجكت نيز براي اجراي Stored Procedure و اجراي فرامين SQL استفاده مي‎شود. آبجكت بعد OledbDataReader است كه براي گرفتن اطلاعات از Database استفاده مي‎شود. البته لازم به ذكر است Resultset اي كه با اين روش ساخته مي‎شود بصورت ReadOnly و Forwardonly مي‎باشد. OleDBDataAdapter آبجكت جديدي در Ado.net است كه خود شامل چهار آبجكت براي انجام فرامين SQL مي‎باشد كه عبارتند از :

SelectCommand

InsertCommand

UpdateCommand

DeleteCommand

كه به ترتيب براي واكشي اطلاعات، اضافه نمودن اطلاعات جديد به داخل بانك ، به هنگام سازي اطلاعات و حذف اطلاعات استفاده مي‎شود. اين آبجكت به همراه آبجكت Dataset استفاده مي‎شود و براي پركردن Recordset موجود در Dataset بكار مي‎رود.

 

آبجكت بعدي Dataset است كه مهمترين آبجكت در Ado.net مي‎باشد اين آبجكت شامل دو Collection به نام هاي * DataTables و DataRelations است. همانطور كه مي‎دانيد در ADO هم آبجكت Recordset داشتيم اينجا مجموعه‎اي از Recordset ها در داخل يك DataTables نگه داشته مي‎شود و مي‎توان بين DataTable هاي مختلف رابطه نيز ايجاد نمود كه اين روابط هم داخل يك مجموعه‎اي با نام DataRelations نگه داشته مي‎شود. در واقع DataTable در ADO.net معادل همان RecordSet در ADO مي‎باشد.

منبع:انجمن اکسل ایرانیان

  • Like 2
لینک به دیدگاه
×
×
  • اضافه کردن...