PDA

View Full Version : تفاوت های Ado.net و ado و odbc vh بیان کنید



amir_paia
چهارشنبه 02 آبان 1386, 21:53 عصر
سلام . اگه میشه تفاوت های بین Ado.net و ado و odbc vh بیان کنید. اگر لینک یک پی دی اف رو هم دارید بدین ممنون می شم.

sinpin
پنج شنبه 03 آبان 1386, 00:03 صبح
سلام . اگه میشه تفاوت های بین Ado.net و ado و odbc vh بیان کنید. اگر لینک یک پی دی اف رو هم دارید بدین ممنون می شم.

لینک اصلی مقاله : http://www.sarapars.com/index.php?option=com_content&task=view&id=894&Itemid=14

شرکت مایکروسافت در ویژوال بیسیک ورژن 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 مربوط به همین آبجکت است .
بعنوان مثال :

Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
cn.Open " Provider = sqloledb ; Data Source=serverName ; Initial Catalog = northwind ", "sa" , "password"
cmd.ActiveConnection = cn
cmd.CommandText = "sp_who"
cmd.CommandType = adCmdStoredProc
Set rs = cmd.Execute
Debug.Print rs(0)
rs.Close
از آبجکت 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 می‎باشد.

sinpin
پنج شنبه 03 آبان 1386, 00:13 صبح
این لینک هم خوبه :
http://msdn2.microsoft.com/en-us/library/ms810810.aspx#mdac%20technologies%20road%20map%20o ld_topic9

DB-Library: This is a SQL Server–specific programming model that includes C APIs. There have been no feature enhancements to the DB-Library since SQL Server 6.5. Its final release was with SQL Server 2000, and it will not be ported to the 64-bit Windows operating system.
Embedded SQL (E-SQL): This is a SQL Server–specific programming model that enables Transact-SQL statements to be embedded in Visual C code. No feature enhancements have been made to the E-SQL since SQL Server 6.5. Its final release was with SQL Server 2000, and it will not be ported to the 64-bit Windows operating system.
Data Access Objects (DAO): DAO provides access to JET (Access) databases. This API can be used from Microsoft Visual Basic, Microsoft Visual C++, and scripting languages. It was included with Microsoft Office 2000 and Office XP. DAO 3.6 is the final version of this technology. It will not be available on the 64-bit Windows operating system.
Remote Data Objects (RDO): RDO was designed specifically to access remote ODBC relational data sources, and made it easier to use ODBC without complex application code. It was included with Microsoft Visual Basic versions 4, 5, and 6. RDO version 2.0 was the final version of this technology.