|
|||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||
|
Підтримка баз даних в VB .NET
Такий короткий
розділ був написаний з єдиною
метою — орієнтувати читача в
потрібному напрямі. Її
обмежений об'єм не дозволить нам
навіть у загальних рисах представити всі
засоби для роботи з базами
даних в VB .NET (не говорячи вже про їх
змістовне обговорення).
У кожній з
попередніх версій VB з'являлася
нова модель підтримки баз даних.
VB .NET слідує цій давній традиції і
представляє новий спосіб роботи з
даними — ADO .NET. При найближчому
розгляді з'ясовується, що
назва вибрана украй невдало.
Чому? Тому що ADO .NET просто не
є наступним поколінням ADO!
Це абсолютно нова модель, що
не має нічого загального
з класичним варіантом ADO.
Зокрема, для роботи з
результатами вам доведеться освоїти
нову об'єктну модель, засновану
на об'єкті Dataset (об'єкт ADO .NET Dataset не
прив'язаний до однієї таблиці і тому
володіє значно великими
можливостями, чим, наприклад,
об'єкт ADO Recordset). Крім того, модель
ADO .NET:
Ще одна
цікава особливість ADO .NET
полягає в тому, що для таких
важливих засобів, як двофазна
актуалізація даних (commit),
потрібно буде використовувати
Enterprise Services (тобто фактично Com+/mts з .NET-оболочкой).
Автономні
набори даних: новий підхід до
роботи з базами даних
У Vb6 типове
застосування, що використало
бази даних, відкривало з'єднання
з базою і використовувало його для
всіх запитів впродовж життєвого
циклу програми. У VB .NET доступ до
баз даних засобами ADO .NET
зазвичай заснований на автономних (від'єднаних)
операціях. За цим високопарним
виразом криється простий сенс: в
більшості випадків після вибірки
даних з бази з'єднання
розривається. У ADO .NET постійний
зв'язок з джерелом даних
зустрічається дуже рідко (за
бажання ви можете використовувати
постійні з'єднання
класичної моделі ADO, удавшись до
послуг .NET COM Interop, проте при цьому
неминуче виникають проблеми
масштабованості, відвіку властиві
ADO). Оскільки
програма зазвичай працює з
автономними даними, типовому
застосуванню .NET для обробки
кожного запиту доводиться наново
підключатися до бази даних. На
перший погляд це здається великим
кроком назад, але таке враження
брехливе. Старий спосіб
підтримки з'єднань погано
підходить для світу розподілених
систем: якщо ваше застосування
відкриває з'єднання з базою
даних і залишає його відкритим, серверу
доводиться підтримувати це
з'єднання до тих пір, поки клієнт
його не закриє. Враховуючи
інтенсивне завантаження сучасних
серверів і пересилку величезних
об'ємів даних, підтримка всіх
клієнтських з'єднань
негативно позначається на
пропускній спроможності сервера. Крім того, в
web-комплексах [ Web-комплексом називається
група комп'ютерів, оброблювальних
трафік одного URL. Більшість
крупних сайтів обслуговуються
web-комплексами, що забезпечують
ефективніший розподіл навантаження. ](Web
farm) запити можуть
оброблятися різними комп'ютерами.
Постійні з'єднання з
web-комплексами даремні, оскільки ви не
знаєте, який сервер оброблятиме
подальші запити.
Збірка System.Data.DLL містить велику кількість класів, розділених на п'ять просторів імен роботи з даними з додатковим простором System.Xml.
Допоміжний простір System.Data.SqlTypes
містить структурні типи,
відповідні типам даних SQL Server
(наприклад, Sql Money і Sqldatetime).
Інший допоміжний
простір імен, System.Data
.Common, містить класи, часто використовувані
при зверненнях до джерела
даних. У цьому розділі основна
увага приділяється просторам
імен System. Data.OleDb і System. Data.
Sqlclient, що виконує
безпосередню роботу. Класи
цих просторів імен використовують
засоби System. Data. Common, включаючи клас
Dataadapter. Клас Dataadapter представляє
з'єднання з базою даних,
використовуване при заповненні набору
даних або оновленні джерела, а
також деякі стандартні
команди при операціях з базами
даних.
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||