Огляд AD0.NET – ЧАСТИНА 3

словами, якщо використовуються такі постачальники від Microsoft, як ODBC або OLE DB, не слід очікувати виникнення якихось проблем Якщо ж використовується сторонній постачальник OLE DB, може знадобитися ознайомитися з документацією виробника перед тим, як припускати захищеність потоків в ADO (це вимога до використання ADO в Інтернеті і корпоративних мережах)

‘ODBC (абревіатура від Open Database Connectivity) – одна з технологій під-

На замітку ключения додатків до баз даних, яка набагато старше OLE DB В від-відмінність від останньої, ODBC створювалася для підключення тільки до джерел даних СУБД Водночас драйвер ODBC включений в SNAC

Для роботи з ADO використовується невелика безліч обєктів У табл 301 перераховані ці обєкти і коротко описані методи їх використання Велика частина з цих типів обєктів має своїх двійників у попередніх технологіях, представлених компанією Microsoft Одночасно з цим рівень функціональності обєктів ADO значно вище, ніж пропонувався більш ранніми технологіями, і, як буде продемонстровано нижче, потенційні можливості, реалізовані більш сучасними технологіями, такими як ADONET і XML, перевершують навіть ADO

Таблиця 301 Огляд обєктів ADO

Обєкт

Опис

Connection

Цей обєкт визначає підключення до постачальника OLE DB Він використовується для виконання таких завдань, як відкриття, підтвердження і відкат транзакцій Існують також методи відкриття і закриття підключень та виконання команд

Error

ADO створює обєкт помилки як частина обєкта підключення Цей обєкт містить додаткову інформацію про помилку, згенерованої постачальником OLE DB Один обєкт Error може містити інформацію про декілька помилках Кожен обєкт асоційований з конкретною подією, таким як підтвердження транзакції

Command

Обєкт команди виконує завдання в обєктах набору записів або підключення Незважаючи на те що команди можна виконати за допомогою обєктів підключення або набору записів, обєкт команди більш гнучкий і допускає вихідні параметри визначення

Parameter

Цей обєкт визначає один параметр команди Параметри змінюють результат збереженої процедури або запиту За допомогою обєкта параметра можна організувати введення, висновок або і те й інше

RecordSet

Обєкт набору записів містить результат запиту і курсор для вибору окремих елементів повернутої таблиці

Record

Запис – це один рядок даних Вона може бути відокремленою, а може управлятися і набором даних

Field

Обєкт поля містить один стовпець даних із запису або набору даних Іншими словами, поле можна розглядати як окремий стовпець таблиці Він містить один тип даних у всіх записах, асоційованих з набором даних

Stream

Коли постачальник даних не здатний висловити значення і довжину даних як набір записів з дискретними полями (як у випадку з великими текстовими полями, особливо великими обєктами або даними документів), дані можуть бути відправлені споживачеві за допомогою обєкта потоку

Property

Для деяких постачальників OLE DB потрібне розширення стандартних обєктів ADO Одним з методів такого розширення є використання обєкта властивостей Цей обєкт містить інформацію про атрибут, імені, типі і значенні

У обєктної моделі ADO також існують чотири колекції обєктів: Errors, Parameters, Fields і Properties Зверніть увагу на те, що ці колекції служать своєрідними контейнерами для відповідних дочірніх обєктів Не існує колекцій в корені обєктної моделі, і модель ніколи не має більше двох рівнів в глибину Структура обєктної моделі – послідовна і проста і завжди має наступну структуру:

Батьківський обєкт ^ Колекція залежних обєктів ^ Дочірній обєкт

Постачальники даних OLE DB

Навіть коли ADO використовується допомогою наданої первинної intemp-збірки NET, всі операції доступу до даних виконуються з використанням одного з доступних постачальників даних OLE DB Постачальник даних управляє підключенням клієнта до СУБД за допомогою безлічі обєктів Природно, це означає, що постачальник даних вимагає вказівки джерела інформації для визначення специфіки створюваного підключення У загальному випадку постачальник специфічний для типу бази даних і надає механізм конфігурування конкретної бази даних На рис 303 показаний типовий список постачальників баз даних Деякі постачальники в цьому списку є вузькоспеціалізованими

Джерело обєкта OLE DB називають постачальником Таким чином, ADO розцінює постачальника як джерело даних Навіть у сучасному світі панування середовища NET Framework кількість постачальників OLE DB, спеціалізованих під конкретні джерела даних, більше, ніж коли б то не було

Слід особливо відзначити одну прекрасну особливість, що стосується OLE DB, – один і той же постачальник може працювати з різними мовами програмування Visual Studio

У загальному випадку (особливо це стосується конструкторів баз даних) завжди краще використовувати постачальника, специфічного для SQL Server Незважаючи на те що постачальники загального призначення також здатні впоратися з роботою, компанія Microsoft оптимізувала роботу постачальника SQL Server для роботи з цієї конкретної СУБД, і відмінності його продуктивності в порівнянні з постачальником загального призначення разючі

Щоб дізнатися, які постачальники даних доступні на конкретному компютері, Рада створіть текстовий файл і перейменуйте його з використанням розширення

. Udl (наприклад, в tempudl імя в даному випадку не має значення, глав-

* ве – розширення) Відкрийте файл, і ви побачите діалогове вікно, аналогічне показаному на рис 303 У ньому будуть перераховані всі постачальники OLE DB, локально встановлені на даному компютері

Відображення типів даних

При роботі виключно в SQL Server основним завданням є вибір оптимального типу даних для конкретних вимог до зберігання даних У той же час при переміщенні інформації з СУБД клієнту за допомогою постачальника даних зявляється кілька проміжних рівнів У деяких СУБД це представляє істотну проблему, так як постачальники загального призначення, що входять до OLE DB не підтримують безліч спеціалізованих типів даних У будь-якому постачальнику витрати на перетворення типів даних, необхідні для проходження всіх цих рівнів, значні Ця проблема типів даних є ще одним приводом використовувати в роботі з ADO специфічні для SQL Server постачальники даних OLE DB

При використанні даних з таблиць SQL Server в клієнтському додатку постачальник повинен відобразити тип даних, який розуміє SQL Server, на тип даних, який розуміє додаток На щастя для розробників SQL Server, відображення ADO для постачальника SQLOLEDB відносно просте У табл 302 показано, як SQL Server відображає типи даних ADO Одна з проблем виникає, коли ADO використовує один і той же свій тип для представлення двох або трьох типів даних SQL Server, в той час як в інтерфейсі користувача останні повинні відображатися з різним форматуванням Повний набір типів даних SQL Server 2005 представлений в клієнті SQL Native Client Обєктна модель ADO знає тільки типи даних SQL Server 2000 – вона не здатна працювати з новими типами, такими як XML або varchar (max), про які ми поговоримо трохи пізніше в цій главі

У табл 302 перераховані типи даних SQL Server 2005 і еквівалентні їм типи даних ADO поряд з відповідною функцією перетворення, за допомогою якої середу NET Framework буде управляти кожним з типів ADO

Таблиця 302 Відображення даних SQL Server в AD0/AD0NET

Тип даних SQL Server

Тип даних ADO (тип даних NET Framework)

Примітки

Bigint

adBiglnt

(int64)

Тип bigint має діапазон значень від -2Л63 (-9223372036854775807) до 2 63-1 (+9223372036854775807) Ці значення доступні тільки в SQL Server 2000, однак постачальник OLE DB намагатиметься відправити його і в більш старі версії сервера, в результаті втрачаючи дані Використовуйте тип adBiglnt тільки в разі крайньої необхідності і з великою обережністю

Binary

adBinary (byte [])

ADO використовує один і той же еквівалент типу даних для

ВИХІДНИХ ТИПІВ binary і timestamp

Bit

adBoolean

(intl6)

Незважаючи на те що це перетворення працює завжди, між даними типами існують певні відмінності Наприклад, тип bit може мати значення про, 1 І NULL, тоді як adBoolean – ТІЛЬКИ true І false

Char

adChar

(string)

ADO використовує один і той же еквівалент типу даних для вихідних типів char, varchar і text Середа NET Framework для подання всіх символьних даних використовує таблицю Unicode

Datetime

adDBTimeStamp

(DateTime)

За замовчуванням точність типу Date time в SQL Server становить 3,33 мілісекунди

Decimal

adNumeric

(Decimal)

ADO використовує один і той же еквівалент типу даних для вихідних типів decimal і numeric

Тип даних SQL Server

Тип даних ADO (тип даних NET Framework)

Примітки

Float

adDouble

(Double)

Image

adVarbinary (byte [])

Цей тип даних може бути настільки великим, що може не поміститися в памяті Витоку памяті можуть викликати помилки постачальника і, можливо, тільки часткове повернення даних Коли таке трапляється, розробник повинен створювати спеціальні процедури для отримання даних по частинах ADO використовує один і той же еквівалент типу даних для ВИХІДНИХ ТИПІВ image, tinyint І varbinary

Int

adlnteger

(Int32)

Money

adCurrency

(Decimal)

ADO використовує один і той же еквівалент типу даних для

Джерело: Нільсен, Пол Microsoft SQL Server 2005 Біблія користувача : Пер з англ – М: ООО ІД Вільямс , 2008 – 1232 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*