2. Що таке ADO.NET?
Andrey Gladky
KspDevelop@gmail.com 2
Платформа .NET визначає ряд просторів імен, які дозволяють
взаємодіяти з базами даних. Всі разом ці простори імен відомі як
ADO.NET (ActiveX Data Objects .NET).
ADO.NET надає узгоджений доступ до SQL Server і XML, а також
до джерел даних, що надаються за допомогою OLE DB (Object
Linking and Embedding, Database) і ODBC (Open Database
Connectivity).
ADO.NET розділять доступ до даних і обробку даних на
дискретні компоненти, які можуть використовуватися окремо або
разом.
ADO.NET включає постачальників даних .NET Framework для
з'єднання з базою даних, виконання команд і отримання
результатів. Ці результати, поміщені в об'єкт ADO.NET DataSet.
3. ODBC
Andrey Gladky
KspDevelop@gmail.com 3
ODBC - (Open Database Connectivity) - це програмний інтерфейс
(API) доступу до баз даних, розроблений фірмою Microsoft, у
співпраці з Simba Technologies на основі специфікацій Call Level
Interface (CLI), який розроблявся організаціями SQL Access Group,
X/Open і Microsoft.
За допомогою ODBC прикладні програмісти могли розробляти
програми для використання одного інтерфейсу доступу до даних,
не турбуючись про тонкощі взаємодії з декількома джерелами.
Це досягається завдяки тому, що постачальники різних баз даних
створюють драйвери, що реалізують конкретне наповнення
стандартних функцій з урахуванням особливостей їхнього
продукту. ODBC API
4. DAO
Andrey Gladky
KspDevelop@gmail.com 4
Об'єкт доступу до даних (data access object) (DAO) - об'єкт що
надає абстрактний інтерфейс до деяких видів баз даних чи
механізмів персистентності реалізуючи певні операції без
розкриття деталей бази даних.
Він надає відображення від програмних викликів до рівня
персистентності.
Перевагою використання об'єкту доступу до даних є досить
просте розділення двох частин програми: бізнес логіки, та логіки
персистентності.
Персистентність в програмуванні означає здатність стану існувати довше, ніж процес,
що створив його.
Це досягається шляхом зберігання стану як даних на пристрої тривалого зберігання,
такому як жорсткий диск чи флеш-пам'ять.
5. OLE DB
Andrey Gladky
KspDevelop@gmail.com 5
OLE DB (Object Linking and Embedding, Database) - набір
інтерфейсів, заснованих на COM, які дозволяють додаткам
отримувати доступ до даних, що зберігаються в різних джерелах
інформації або сховищах даних за допомогою уніфікованого
доступу.
OLE DB є API, розроблена Microsoft для доступу до різних типів
даних, які зберігаються в єдиній формі.
Вона була розроблена в якості подальшого розвитку і повинна
прийти на заміну і в якості наступника ODBC, розширюючи набір
функцій для підтримки більш широкого кола нереляційних
джерел даних, таких як об'єктно-орієнтовані бази даних або
електронні таблиці, і для яких не обов'язково використовувати
SQL.
6. ADO
Andrey Gladky
KspDevelop@gmail.com 6
ADO (ActiveX Data Objects) — прикладний програмний інтерфейс
для доступу до даних, розроблений компанією Microsoft (MS
Access, MS SQL Server) і заснований на технології компонентів
ActiveX. ADO дозволяє представляти дані з різноманітних
джерел: (реляційної СУБД, текстових файлів тощо) в об'єктно-
орієнтованому програмуванні виді.
Компоненти ADO використовуються в мовах високого рівня,
таких як VBScript в ASP, JScript в WSH, Visual Basic, Delphi.
Останньою версією ADO є версія 2.8.
У рамках платформи Microsoft. NET інтерфейс ADO замінений на
ADO.NET.
7. Провайдери (постачальники) даних ADO.NET
Andrey Gladky
KspDevelop@gmail.com 7
Для вилучення, оновлення, вставки і видалення даних необхідно
підключитися до фізичної бази даних. Програмне забезпечення
ADO.NET для під'єднання і взаємодії з фізичної базою даних
називається провайдером даних ADO.NET.
Провайдер даних (data provider) - це керований код .NET, який
еквівалентний провайдеру OLEDB або драйверу ODBC.
Провайдер даних складається з декількох об'єктів, які реалізують
необхідну функціональність відповідно до визначень своїх класів
і інтерфейсів.
Провайдери даних .NET Framework є спрощеними і створюють
мінімальний рівень між джерелом даних і кодом, збільшуючи тим
самим продуктивність без збитку для функціональних
можливостей.
8. Провайдери даних ADO.NET
Andrey Gladky
KspDevelop@gmail.com 8
Постачальник даних
.NET Framework
Опис
.NET Framework постачальник
даних для SQL Server
Надає доступ до даних для Microsoft SQL Server.
Використовує простір імен System.Data.SqlClient.
Постачальник даних .NET
Framework для OLE DB
Для джерел даних OLE DB. Використовує простір імен
System.Data.OleDb.
Постачальник даних .NET
Framework для ODBC
Для джерел даних ODBC. Використовує простір імен
System.Data.Odbc.
Постачальник даних .NET
Framework для Oracle
Для джерел даних Oracle. Джерело даних .NET
Framework для Oracle підтримує клієнтське програмне
забезпечення версії 8.1.7 і старше і використовує простір
імен System.Data.OracleClient.
EntityClient - постачальник Надає доступ до даних для додатків моделі EDM (Entity
Data Model). Використовує простір імен
System.Data.EntityClient.
Постачальник даних .NET
Framework для SQL Server
Compact 4.0.
Надає доступ до даних для Microsoft SQL Server
Compact 4.0. Використовує простір імен
System.Data.SqlServerCe.
10. Приєднаний режим
Andrey Gladky
KspDevelop@gmail.com 10
При використанні підключеного режиму, кодова база
явно підключається до відповідного сховища даних і
відключається від нього. При такому способі
використання ADO.NET зазвичай відбувається взаємодія
зі сховищем даних за допомогою об'єктів підключення,
об'єктів команд і об'єктів читання даних.
11. Автономний режим
Andrey Gladky
KspDevelop@gmail.com 11
Автономний режим дозволяє працювати з набором
об'єктів DataTable (містяться в DataSet), який
представляє на стороні клієнта копію зовнішніх даних.
При отриманні DataSet за допомогою відповідного
об'єкта адаптера даних, підключення відкривається і
закривається автоматично.
Отримавши об'єкт DataSet, код може переглядати і
обробляти дані без витрат на мережевий трафік. А якщо
потрібно занести зміни в сховище даних, то адаптер
даних (разом з набором операторів SQL) задіюється для
оновлення даних - при цьому підключення відкривається
заново для проведення оновлень в базі, а потім відразу ж
закривається.
13. Інтерфейси ADO.NET
Andrey Gladky
KspDevelop@gmail.com 13
Інтерфейс Опис
IDbConnection IDbConnection реалізований об'єктом підключення
постачальника даних. Цей інтерфейс визначає набір членів, які
застосовуються для налаштування підключення до
конкретного сховища даних, а, крім того, дозволяє отримати
об'єкт транзакції постачальника даних..
IDbTransaction Перевантажений метод BeginTransaction(), визначений в
інтерфейсі IDbConnection, щоб перейти до вибору об'єкту
транзакції постачальника. Члени, визначені в IDbTransaction,
дозволяють програмним чином взаємодіяти з сеансом
транзакцій і відповідним сховищем даних:
IDbCommand Як і інші об'єктні моделі доступу до даних, об'єкти команди
дозволяють програмно працювати з операторами SQL,
збереженими процедурами і параметризованих запитами. Крім
того, об'єкти команди забезпечують доступ до типу читання
даних постачальника даних за допомогою перевантаженого
методу ExecuteReader ():
14. Інтерфейси ADO.NET
Andrey Gladky
KspDevelop@gmail.com 14
Інтерфейс Опис
IDbDataParameter
і IDataParameter
Властивість Parameters інтерфейсу IDbCommand
повертає строго типізовану колекцію, яка реалізує
IDataParameterCollection. Цей інтерфейс надає доступ до
набору класів, сумісних з IDbDataParameter (об'єкти
параметрів)
DataReader і
IDataRecord
IDataReader, який представляє загальну поведінку, яка
підтримується конкретним об'єктом читання даних.
Отримавши від постачальника даних ADO.NET тип,
сумісний з IDataReader, ви зможете виконувати прохід за
результуючого набору тільки в прямому напрямку тільки
для читання.
15. Основні об’єкти провайдерів даних ADO.NET
Andrey Gladky
KspDevelop@gmail.com 15
Object Опис
Connection Встановлює з'єднання з конкретним джерелом даних. Базовим
класом для всіх об'єктів Connection є DbConnection.
Command Виконує команду в джерелі даних. Забезпечує доступність
Parameters і може виконувати команди в області Transaction з
Connection. Базовим класом для всіх об'єктів Command є
DbCommand.
DataReader Зчитує з джерела даних однопрохідний потік даних тільки для
читання. Базовим класом для всіх об'єктів DataReader є
DbDataReader.
DataAdapter Заповнює DataSet і виконує оновлення в джерелі даних.
Базовим класом для всіх об'єктів DataAdapter є DbDataAdapter.