Компоненты доступа к данным Microsoft - Microsoft Data Access Components

Компоненты доступа к данным Microsoft
MDAC provides a uniform framework for accessing a variety of data sources on their Windows platform
MDAC предоставляет единую структуру для доступа к различным источникам данных на своих Windows Платформа
Разработчики)Microsoft
Окончательный релиз
2.8 SP1 (2.81.1117.6) / май 2005 г.
Операционная системаWindows 98, Windows ME, Windows NT 4, Windows 2000, Windows XP, Windows Server 2003, Windows 7, Windows 10
ТипБаза данных
ЛицензияБесплатное ПО
Интернет сайтmsdn2.microsoft.com/ en-us/данные/ aa937729.aspx

Компоненты доступа к данным Microsoft (MDAC; также известен как Windows DAC) это рамки взаимосвязанных Microsoft технологии, которые позволяют программистам единообразно и всесторонне разрабатывать приложения, которые могут получить доступ практически к любому хранилищу данных. В его состав входят: Объекты данных ActiveX (ADO), OLE DB, и Открытое подключение к базе данных (ODBC). Также было несколько устаревших компонентов, таких как Ядро базы данных Microsoft Jet, MSDASQL (поставщик OLE DB для ODBC) и Службы удаленных данных (RDS). Некоторые компоненты также стали устаревший, например, бывший Объекты доступа к данным API и Объекты удаленных данных.

Первая версия MDAC была выпущена в августе 1996 года. В то время Microsoft заявила, что MDAC - это скорее концепция, чем отдельная программа и не имеет широко распространенного метода распространения. Позже Microsoft выпустила обновления для MDAC в виде распространяемых через Интернет пакетов. В конце концов, более поздние версии были интегрированы с Майкрософт Виндоус и Internet Explorer, а в MDAC 2.8 SP1 они перестали предлагать MDAC в качестве распространяемого пакета.

На протяжении своей истории MDAC был предметом нескольких недостатки безопасности, что привело к атакам, таким как атака с повышенными привилегиями, хотя уязвимости, как правило, исправляли в более поздних версиях и довольно быстро. Текущая версия - 2.8 Service Pack 1, но у продукта было много разных версий, и многие его компоненты устарели и заменены новыми технологиями Microsoft. MDAC теперь известен как Windows DAC в Виндоус виста.

Архитектура

Последняя версия MDAC (2.8) состоит из нескольких взаимодействующих компонентов, все из которых Windows конкретные, за исключением ODBC (который доступен на нескольких платформах). Архитектуру MDAC можно рассматривать как три уровня: уровень интерфейса программирования, состоящий из ADO и ADO.NET, уровень доступа к базе данных, разработанный такими поставщиками баз данных, как Oracle и Microsoft (OLE DB, Управляемые поставщики .NET и ODBC драйверы) и сама база данных. Все эти уровни компонентов доступны для приложений через MDAC. API. В Microsoft SQL Server Сетевая библиотека, проприетарный метод доступа, специфичный для Microsoft SQL Server, также включен в MDAC. Разработчикам приложений Windows рекомендуется использовать ADO или ADO.NET для доступа к данным, преимущество состоит в том, что пользователи прикладной программы не ограничены в выборе архитектуры базы данных, за исключением того, что она должна поддерживаться MDAC. Естественно, у разработчиков по-прежнему есть возможность писать приложения с прямым доступом к OLE DB и ODBC.

Сетевая библиотека Microsoft SQL Server

Сетевая библиотека Microsoft SQL Server (также известная как Net-Lib) используется Microsoft SQL Server для чтения и записи данных с использованием множества различных сетевые протоколы. Хотя Net-Lib специфична для SQL Server, Microsoft включает ее в MDAC. SQL Server использует библиотеку Open Data Services (ODS) для связи с Net-Lib, которая напрямую взаимодействует с Windows NT операционная система Win32 подсистема. Сетевая библиотека SQL Server управляется с помощью клиентской сетевой утилиты, которая входит в комплект поставки SQL Server.

Каждый сетевой протокол, поддерживаемый Net-Lib, имеет отдельный драйвер (не путать с драйвер устройства ) и поддерживает уровень сеанса в своем стеке протоколов. Существует два основных типа Net-Lib: основной и дополнительный. Первичная Net-Lib состоит из Супер розетка Net-Lib и Общая память Net-Lib, в то время как существует множество вторичных Net-Lib, в том числе TCP / IP и именованные каналы сетевые библиотеки (именованные каналы - это метод связи с другими процессами через постоянный трубопровод которому присвоена личность). Поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) взаимодействует через первичные Net-Libs.

Net-Lib Super Socket занимается межкомпьютерными коммуникациями и координирует вторичные Net-Libs, хотя вторичный Net-Lib TCP / IP является исключением, поскольку он вызывает Сокеты Windows 2 API напрямую. В Banyan VINES, AppleTalk, ServerNet, IPX / SPX, Гиганет, и RPC Net-Libs были исключены из MDAC 2.5 и новее. Маршрутизатор сетевой библиотеки должен был управлять всеми этими протоколами, однако теперь маршрутизатор управляет только именованными вторичными каналами Net-Lib. Super Socket Net-Lib также обрабатывает шифрование данных через использование Windows SSL API.

С другой стороны, Shared Memory Net-Lib управляет подключениями между несколькими экземплярами SQL Server, существующими на одном компьютере. Он использует Общая память область для связи между процессами. Это по своей сути безопасно; нет необходимости в шифровании данных между экземплярами SQL Server, которые существуют на одном компьютере, поскольку операционная система не разрешает другим процессам доступ к области общей памяти экземпляров.

Net-Lib также может поддерживать олицетворение контекста безопасности вошедшего в систему пользователя для протоколов, которые поддерживают аутентифицированные соединения (называемые доверенные соединения). Это позволяет Net-Lib предоставлять интегрированный механизм аутентификации при входе в систему с использованием Проверка подлинности Windows. Проверка подлинности Windows не поддерживается в Windows 98 и Windows Me.[1]

OLE DB

OLE DB (также называемый OLEDB или OLE-DB) позволяет приложениям MDAC получать доступ к различным типам ([данных]) хранилищ единообразным образом. Microsoft использовала эту технологию, чтобы отделить приложение от данных, которые могут храниться на веб-сайте, хранилище данных, к которому ему необходимо получить доступ. Это было сделано потому, что разным приложениям необходим доступ к разным типам и источникам данных, и им не обязательно знать, как получить доступ к специфическим для технологии функциям. Технологию концептуально делят на потребители и провайдеры. Потребители - это приложения, которым требуется доступ к данным, а поставщик - программный компонент, который предоставляет интерфейс OLE DB с помощью Компонентная объектная модель (или COM).

OLE DB - это технология интерфейса доступа к базе данных, используемая MDAC. Поставщики OLE DB могут быть созданы для доступа к таким простым хранилищам данных, как текстовый файл или электронная таблица, вплоть до таких сложных баз данных, как Oracle и SQL Server. Однако, поскольку разные технологии хранения данных могут иметь разные возможности, поставщики OLE DB могут не реализовывать все возможные доступные интерфейсы. Доступные возможности реализуются за счет использования COM-объектов - поставщик OLE DB сопоставляет функциональные возможности технологии хранилища данных с конкретным COM-интерфейсом. Microsoft называет доступность интерфейса «зависящей от поставщика», поскольку она может быть неприменима в зависимости от используемой технологии базы данных. Кроме того, однако, поставщики могут также расширить возможности хранилища данных; эти возможности известны как Сервисы на языке Microsoft.

В Поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) - поставщик OLE DB, который Microsoft предоставляет для Microsoft SQL Server начиная с версии 6.5.

Универсальный канал передачи данных

Файлы универсальных каналов данных (или файлы .udl) предоставляют общий пользовательский интерфейс для указания атрибутов подключения. Пользователь может использовать свойства связи с данными диалоговое окно для сохранения информации о подключении в файле .udl в качестве альтернативы прямому указанию их вручную в строке подключения. Следовательно, эти файлы обеспечивают удобный уровень косвенное обращение. Кроме того, в диалоговом окне указывается ряд альтернативных поставщиков данных OLE DB для различных целевых приложений.[2]

ODBC

Открытое подключение к базе данных (ODBC) - это собственный интерфейс, доступ к которому осуществляется через язык программирования (обычно C ), который может звонить в родная библиотека. В MDAC этот интерфейс определяется как DLL. Отдельный модуль или Водитель требуется для каждой базы данных, к которой необходимо получить доступ. Функции ODBC API реализуются этими специфичными для СУБД драйверами. Драйвер, который Microsoft предоставляет в MDAC, называется драйвером ODBC для SQL Server (SQLODBC) и (как следует из названия) разработан для Microsoft SQL Server. Он поддерживает SQL Server v6.5 и выше.[3] ODBC позволяет программам использовать SQL запросы, которые будут обращаться к базам данных без необходимости знать проприетарные интерфейсы к базам данных. Он обрабатывает запрос SQL и преобразует его в запрос, понятный отдельной системе баз данных. По заявлению Microsoft, «после SQL Server 2012 драйвер ODBC будет обновлен с учетом самых последних серверных функций, включая базу данных SQL Microsoft Windows Azure, и выпущен как драйвер Microsoft ODBC для SQL Server».[4]

ADO

Объекты данных ActiveX (ADO) - это интерфейс программирования высокого уровня для OLE DB. Он использует иерархический объект модель, позволяющая приложениям программно создавать, получать, обновлять и удалять данные из источников, поддерживаемых OLE DB. ADO состоит из ряда иерархических объектов и коллекций на основе COM, объекта, который действует как контейнер для многих других объектов. Программист может напрямую обращаться к объектам ADO для управления данными или может отправлять SQL запрос к базе данных через несколько механизмов ADO. ADO состоит из девяти объектов и четырех коллекции.

Коллекции:

  1. Поля: Эта коллекция содержит набор объектов Field. Коллекция может использоваться либо в объекте Recordset, либо в объекте Record. В объекте Recordset каждый из объектов Field, составляющих коллекцию Fields, соответствует столбцу в этом объекте Recordset. В объекте записи поле может быть абсолютным или относительным URL-адресом, который указывает на древовидное пространство имен (используется для полуструктурированные данные поставщиков, таких как поставщик Microsoft OLE DB для публикации в Интернете) или в качестве ссылки на объект Stream по умолчанию, связанный с этим объектом записи.[5]
  2. Характеристики: У объекта может быть более одного объекта Property, которые содержатся в коллекции Properties объекта.[6]
  3. Параметры: У объекта Command может быть несколько команд Parameter для изменения предопределенного поведения, и каждый из объектов Parameter содержится в коллекции Parameters объекта Command.[7]
  4. Ошибки: Все ошибки, созданные поставщиком, передаются в коллекцию объектов Error, а сама коллекция Errors содержится в объекте Connection. Когда операция ADO создает ошибку, коллекция очищается и в ней создается новая группа объектов Error.[8]

Объектами являются:

  1. Связь: Объект подключения - это подключение ADO к хранилищу данных через OLE DB. Объект подключения хранит информацию о сеансе и предоставляет методы подключения к хранилищу данных. Поскольку в некоторых хранилищах данных используются разные методы установления соединения, некоторые методы могут не поддерживаться в объекте подключения для определенных поставщиков OLE DB. Объект подключения подключается к хранилищу данных с помощью своего метода Open со строкой подключения, которая определяет подключение в виде списка пар ключ-значение (например: "Поставщик = 'SQLOLEDB'; Источник данных = 'TheSqlServer'; Исходный каталог = "Борей"; Интегрированная безопасность = "SSPI";").[9] Начало которого должно указывать на тип подключения к хранилищу данных, который требуется объекту подключения. Это должно быть либо:
    • поставщик OLE DB (например, SQLOLEDB), используя синтаксис "provider ="
    • имя файла с использованием синтаксиса "имя файла ="
    • удаленный провайдер и сервер (см. RDS ), используя синтаксис «Удаленный провайдер =» и «Удаленный сервер =».
    • абсолютный URL, используя синтаксис "URL ="[10]
  2. Команда: После того, как объект подключения устанавливает сеанс с источником данных, инструкции отправляются поставщику данных через объект команды. Командный объект может отправлять SQL-запросы непосредственно поставщику с помощью CommandText свойство, отправьте параметризованный запрос или хранимая процедура за счет использования Параметр объект или Параметры сбора или выполнения запроса и возврата результатов объекту набора данных через Выполнять метод. Есть несколько других методов, которые могут использоваться в объекте Command, относящемся к другим объектам, таким как объекты Stream, RecordSet или Connection.[11]
  3. Набор записей: А набор записей представляет собой группу записей, которая может поступать из базовой таблицы или в результате запроса к таблице. Объект RecordSet содержит Поля коллекция и Характеристики коллекция.[12] Коллекция Fields - это набор объектов Field, которые являются соответствующими столбцы в таблице. Коллекция Properties - это набор объектов Property, который определяет конкретную функциональность поставщика OLE DB. RecordSet имеет множество методов и свойств для изучения имеющихся в нем данных.[13] Записи можно обновить в наборе записей, изменив значения в записи и затем вызвав Обновлять или же UpdateBatch метод. Добавление новых записей осуществляется через Добавить новое функцию, а затем, вызвав Обновлять или же UpdateBatch метод.[14] Записи также удаляются в наборе записей с помощью метода Delete, а затем путем вызова метода Update. Однако, если по какой-либо причине удаление не может произойти, например, из-за нарушений в ссылочная целостность, то набор записей останется в режиме редактирования после вызова Обновлять метод. Программист должен явно вызывать Отменить обновление функция отмены обновления. Кроме того, ADO может откатывать транзакции (если это поддерживается) и отменять пакетные обновления.[15] Наборы записей также можно обновить одним из трех способов: посредством немедленного обновления, посредством пакетного обновления,[16] или с помощью транзакций:
    1. Немедленный: Набор записей заблокирован с помощью adLockOptimistic или же adLockPessimistic замок. Данные обновляются в источнике данных после изменения записи и Обновлять вызывается метод.
    2. Партия: Набор записей заблокирован с помощью adLockBatchOptimistic и каждый раз Обновлять называется, данные обновляются во временном буфере. Наконец, когда UpdateBatch называется, данные полностью обновляются обратно в источнике данных. Это имеет то преимущество, что все это делается в памяти, и если возникает проблема, то UpdateCancel вызывается, и обновления не отправляются в источник данных
    3. Сделка: Если поставщик OLE DB позволяет это, сделки может быть использован. Чтобы начать транзакцию, программист вызывает BeginTrans метод и выполняет необходимые обновления. Когда все будет готово, программист вызывает CommitTrans метод. RollbackTrans может быть вызван для отмены любых изменений, сделанных внутри транзакции, и откатиться база данных в состояние до начала транзакции[17]
  4. Записывать: Этот объект представляет собой записывать в базе данных и содержит коллекцию полей. RecordSet состоит из коллекции объектов Record.[18]
  5. Транслировать: Поток, в основном используемый в объекте RecordSet, представляет собой средство чтения и записи потока байтов.[19] В основном он используется для сохранения набора записей в формате XML,[20] для отправки команд поставщику OLE DB в качестве альтернативы объекту CommandText и для хранения содержимого двоичного или текстового файла.
  6. Параметр: Параметр - это средство изменения поведения общей части функциональности, например, хранимая процедура может иметь разные параметры, передаваемые ей в зависимости от того, что нужно сделать; они называются параметризованные команды.[21]
  7. Поле: Каждый объект Record содержит множество полей, а объект RecordSet также имеет соответствующий объект Field. Объект Field объекта RecordSet соответствует столбец в таблице базы данных, на которую он ссылается.[22]
  8. Свойство: Этот объект специфичен для поставщика OLE DB и определяет возможность, реализованную поставщиком. Объект свойства может быть либо встроенный свойство - это четко определенное свойство, уже реализованное ADO и, следовательно, не может быть изменено - или динамичный свойство - определяется базовым поставщиком данных и может быть изменено[23]
  9. Ошибка: Когда поставщик OLE DB ошибка происходит во время использования ADO, объект Error будет создан в коллекции Errors.[24] Однако другие ошибки не попадают в объект Error. Например, любые ошибки, возникающие при манипулировании данными в объекте RecordSet или Field, сохраняются в свойстве Status.[25]

ADO.NET

ADO.NET является последней версией ADO (после ADO 2.8, теперь часто называемой ADO Classic) и является частью стека MDAC 2.8 наряду с классической ADO. Он построен вокруг Microsoft .NET. Хотя иногда это рассматривается как эволюционный шаг по сравнению с ADO, некоторые фундаментальные структурные изменения были внесены Microsoft. ADO.NET работает через .NET Managed Provider, модифицированную версию поставщика OLE DB, специально разработанную для .NET. Структура объекта больше не строится вокруг объекта Recordset. Вместо этого объект набора данных используется для хранения данных, собранных из нескольких источников. Это прозрачно для программиста. В отличие от старого набора записей ADO, дизайн набора данных способствует использованию отключенных данных. Концептуально объект Dataset можно рассматривать как отдельную небольшую реляционную базу данных в памяти, которая позволяет манипулировать данными в любом направлении. Чтобы распространить изменения обратно в базу данных, DataAdapter используется объект, который передает данные между источником данных и объектом DataSet. Курсоры также устарели в ADO.NET и были заменены DataReader объект, который используется для эффективной обработки большого списка результатов по одной записи за раз без их сохранения.[26]

Устаревшие и устаревшие компоненты

MDAC - это постоянно развивающаяся компонентная среда. Таким образом, было несколько компонентов, которые ранее входили в его состав, но с тех пор были объявлены устаревшими или полностью удалены из платформы.

Ядро базы данных Microsoft Jet и JRO

Jet означает Совместная технология двигателя и был ядро базы данных используется для Microsoft Access, Сервер Microsoft Exchange и Visual Basic. Джет был частью Система управления реляционной базой данных (РСУБД) и предложил единый интерфейс это другое программное обеспечение может использовать для доступа к базам данных Microsoft. Jet также обеспечил поддержку безопасности, ссылочная целостность, обработка транзакции, индексация, записывать блокировка страниц и репликация данных. В более поздних версиях Jet двигатель был расширен для работы SQL запросы, хранить символьные данные в Unicode форматировать, создавать взгляды, и позволяла двунаправленную репликацию с Microsoft SQL Server. С тех пор он был заменен MSDE.

У Jet было три модуля. Один был Родной драйвер Jet ISAM, струя библиотека динамической компоновки (DLL), который мог напрямую управлять файлами базы данных Microsoft Access (MDB), который был модифицированной формой Индексированный метод последовательного доступа (ISAM) база данных. Еще одним из модулей был Драйверы ISAM, Библиотеки DLL, которые разрешили доступ к базам данных ISAM, среди них Xbase, Парадокс, Btrieve и FoxPro файлы. Последний модуль был DLL объектов доступа к данным (DAO), DAO разрешил программистам доступ к реактивному двигателю. По сути, это был объектно-ориентированный язык данных, используемый Access Basic и Visual Basic разработчикам приложений для доступа к Jet.

Точно так же Поставщик Microsoft Jet OLE DB и объекты репликации (JRO), который разрешал репликацию между источниками данных Jet, был удален из MDAC 2.6.[27]

MSDASQL и Oracle ODBC

Поставщик Microsoft OLE DB для ODBC или MSDASQL, был поставщиком OLE DB для разрешения Объекты данных ActiveX доступ к базам данных через любой драйвер ODBC. Microsoft предоставила несколько поставщиков OLE-DB (для службы индексирования, Active Directory, Jet, SQL Server, Oracle (MSDAORA[28]) и публикации в Интернете), однако, если не указано иное, ADO по умолчанию использовала MSDASQL в качестве поставщика по умолчанию. После MDAC 2.5 и драйвер Oracle ODBC, и MSDASQL поддерживали Oracle 7 и частично поддерживали Oracle 8i. Не поддерживались следующие функции:

Microsoft изначально не рекомендовала компонент MSDASQL для своих 64-разрядных операционных систем.[29]а драйвер Microsoft Oracle ODBC позже был заменен на .NET Managed Oracle Provider, который поддерживал Oracle 9i.[30] Тем не мение, Windows Server 2008 и Windows Vista с пакетом обновления 1 (SP1) поставляется с 64-разрядной версией MSDASQL.

Службы удаленных данных (RDS)

Службы удаленных данных (RDS) позволил получить набор данных с сервера, которые затем клиент каким-то образом изменил, а затем отправил обратно на сервер для дальнейшей обработки.[31] С популярным принятием Transact-SQL, который расширяет SQL такими программными конструкциями, как циклы и условные операторы, необходимость в этом отпала, и в конечном итоге он был объявлен устаревшим в MDAC 2.7. Microsoft произвела МЫЛО Toolkit 2.0, который позволяет клиентам делать это через открытый XML на основе стандарта.[32]

SQLXML

SQLXML был разработан для SQL Server 2000, но объявлен устаревшим в MDAC 2.6. Это позволило просматривать реляционную базу данных Microsoft XPath и разрешил просматривать данные как XML файл. На самом деле он не является устаревшим, но был удален из более поздних версий MDAC, хотя Microsoft предоставляет его в качестве загружаемого компонента и будет поддерживать его в своих 64-разрядных операционных системах.

Устаревшие компоненты

Некоторые компоненты были полностью удалены из MDAC корпорацией Майкрософт и больше не поддерживаются. Они есть:

  • ESQL / C: Встроенный SQL (также известный как E-SQL или ESQL / C) - это способ использования SQL при программировании в Visual C. Microsoft отказалась от этой поддержки после выпуска SQL Server 6.5, хотя они лицензировали некоторые среды выполнения ESQL / C. в компанию под названием Микро Фокус, кто развивает КОБОЛ компиляторы и инструменты[33]
  • ДАО: DAO или Объекты доступа к данным были объектно-ориентированный интерфейс, созданный Microsoft, который позволял ранним версиям Microsoft Access и Visual Basic для доступа к Ядро базы данных Jet. Позже (в версии 3.5) он смог полностью обойти двигатель Jet и получить прямой доступ ODBC источники данных.[34]
  • RDO: Объекты удаленных данных, или RDO, был Microsoft технология, позволяющая создавать интерфейсы, напрямую обращающиеся к ODBC. RDO версии 2.0 была последней версией, разработанной Microsoft.
  • БД-библиотека: API на основе C, позволяющий приложению взаимодействовать с SQL Server. Он не будет поддерживаться ни в одном продукте после SQL Server 2000, и после SQL Server 6.5 не было добавлено никаких функций.

История

Со временем Microsoft выпустила несколько версий MDAC. Метод распространения варьировался, и набор функций различен для каждой версии.

MDAC 1.0

MDAC 1.0 был впервые выпущен в августе 1996 года.[35] Согласно Microsoft, «MDAC 1.0 существовал скорее как концепция, чем как скоординированная автономная программа установки». Стек MDAC 1.0 состоял из ODBC 3.0, OLE DB 1.1, ADO 1.0 и Расширенный соединитель данных (ADC) 1.0, который, по словам Microsoft, был предшественником службы удаленных данных MDAC 1.5. Он также включает драйверы ODBC для Access / Jet, SQL Server и Oracle базы данных. MDAC 1.0 был выпущен с помощью нескольких механизмов: Advanced Data Connector, поставляемый с Информационный сервер в Интернете (IIS) 3.0 и как загружаемый cab файл; OLE DB 1.1 и ADO 1.0 поставлялись с OLE DB 1.1 SDK, который шел с Visual Studio 97, который также можно было загрузить.[36] MDAC 1.0 поставлялся с Active Server Pages, который сам входил в состав IIS 3.0, а также поставлялся с Визуальный InterDev 1.0.[37]

MDAC 1.5

MDAC 1.5 был выпущен в период с сентября 1997 г. по март 1998 г. и включал более централизованный механизм распространения, чем MDAC 1.0. Он был выпущен вместе с Microsoft Internet Explorer 4.0, Internet Client SDK 4.0 и на компакт-диске, выпущенном в 1997 г. Конференция профессиональных разработчиков (PDC). Было пять версий MDAC 1.5:

  • MDAC 1.5 (начальный выпуск): входит в состав Internet Explorer 4.0 и Internet Client SDK.
  • MDAC 1.5a: можно загрузить с веб-сайта Microsoft
  • MDAC 1.5b: пришел с Windows NT 4.0 Пакет опций и Office 97
  • MDAC 1.5c: исправлены проблемы с потоками ADO и пулом подключений ODBC и распространялась через веб-сайт Microsoft. Он поставлялся только с компонентами среды выполнения ADO / MDAC.
  • MDAC 1.5d: был включен с Windows 98 и Internet Explorer 4.01 пакет обновления 1.[37]

Различные версии MDAC 1.5 состояли из:

  • ODBC 3.5
  • OLE DB 1.5
  • ADO 1.5
  • Служба удаленных данных 1.5, которая заменила Advanced Data Connector.[36]

В этой версии MDAC был недостаток безопасности, делавший ее уязвимой для атака с повышенными привилегиями. Уязвимость привела к тому, что системы, в которых были установлены как IIS, так и MDAC, дали неавторизованному веб-пользователю возможность выполнять команды оболочки в системе IIS в качестве привилегированного пользователя. Это позволило злоумышленнику использовать MDAC для туннелирования запросов SQL и других данных ODBC через общедоступное соединение с частной серверной сетью при подключении к сети. многодомный Система IIS, подключенная к Интернету. Это также позволило пользователю получить несанкционированный доступ к защищенным, неопубликованным файлам в системе IIS.[38]

MDAC 1.5 был последним выпуском компонента доступа к данным, поддерживаемым Windows NT 3.51 SP5.

MDAC 2.0

MDAC 2.0 распространялся вместе с Data Access 2.0 SDK и включал содержимое MDAC 1.5, ODBC 3.5 SDK и OLE DB 1.5 SDK, а также OLE DB для OLAP Технические характеристики. Он также включал много обновлений в основной продукт,[36] включая функцию безопасности, добавленную к RDS, которая предотвращает его злонамеренное использование сервером IIS.[39] Эта версия входила в состав Windows NT 4.0 SP4,[40] а также с Visual Studio 6.0, который поставляется с полным пакетом SDK для доступа к данным.[36]

MDAC 2.1

MDAC 2.1 распространялся с SQL Server 7.0 и SQL Server 6.5 SP5. MDAC 2.1 SP1 распространялся с Internet Explorer 5, а MDAC 2.1 SP1a (GA) распространялся с Microsoft Office 2000, Бэк-офис 4.5 и Visual Studio 98 SP3. Однако ни одна из этих версий MDAC не была выпущена для широкой публики через Всемирная паутина. MDAC 2.1 SP2 распространялся с веб-сайта Microsoft. Компоненты, которые были включены в 2.1, были:

  • ADO 2.1
  • RDS 2.1
  • OLE DB 2.1
  • поставщик OLE DB для ODBC, SQL Server и Oracle
  • JRO 2.1
  • водитель реактивного самолета
  • РДО.[41]

Эта версия имела уязвимости безопасности, из-за чего непроверенный буфер мог позволить атаку с повышенными привилегиями. Это было обнаружено некоторое время спустя, затронуло MDAC 2.1, 2.5 и 2.6 и было исправлено в более позднем патче.[42]

MDAC 2.5

MDAC 2.5 был выпущен 17 февраля 2000 г. и распространялся с Windows 2000, а пакеты обновления для MDAC выпускались параллельно с пакетами обновления для Windows 2000. Они также распространялись через веб-сайт Microsoft. Выпущено три пакета обновления. Компоненты, включенные в 2.5, были:

  • ADO 2.5
  • ADO MD 2.5
  • ADOX 2.5
  • RDS 2.5
  • OLE DB 2.5
  • многие провайдеры OLE DB
  • JRO 2.5
  • ODBC 3.51
  • многие драйверы ODBC
  • многие водители Jet.[43]

В этой версии MDAC обнаружено несколько проблем. При использовании пула сеансов OLE DB Microsoft COM + будет пытаться непрерывно загружать и выгружать OLE DB, и может возникнуть конфликт, из-за которого пул сеансов OLE DB будет работать при 100% загрузке ЦП. Позже это было исправлено.[44] Microsoft опубликовала полный список ошибок, исправленных в Пакет обновления 2 для MDAC 2.5 и Пакет обновления 3 для MDAC 2.5. Также существовала уязвимость системы безопасности (позже исправленная), в результате чего в драйвере SQL Server был обнаружен непроверенный буфер. Этот недостаток появился в MDAC 2.5 SP2.

MDAC 2.6

MDAC 2.6 был выпущен в сентябре 2000 года и распространялся через Интернет вместе с Microsoft SQL Server 2000.[45] MDAC 2.6 RTM, SP1 (выпущен 20 июня 2001 г.) и SP2 (выпущен 11 июня 2002 г.) распространялись параллельно с пакетами обновления Microsoft SQL Server 2000, а также могли быть загружены с веб-сайта Microsoft.

Начиная с этой версии MDAC, Microsoft Jet, Microsoft Jet OLE DB Provider и драйверы ODBC для настольных баз данных не включались. Вместо этого их можно было установить вручную.[46] Microsoft также выпустила предупреждение о том, что MDAC 2.6 не следует устанавливать в кластере SQL Server 7.0, поскольку «установка MDAC 2.6 или более поздней версии на любом узле кластера напрямую или посредством установки другой программы может вызвать катастрофический сбой агента SQL Server или других служб SQL Server ".[47] Эта проблема затронула Программное обеспечение Veritas Backup Exec 9.0 для серверов Windows, так как он устанавливает Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) в качестве своей базы данных. В редакции 4367 установлен MDAC версии 2.6 SP2, в то время как в редакции 4454 установлен MDAC версии 2.7 SP1, в которой проблемы не возникали.[48]

MDAC 2.7

MDAC 2.7 был выпущен в октябре 2001 года на веб-сайте Microsoft. Обновленный выпуск был выпущен в апреле 2002 года посредством выпуска Windows XP и через веб-сайт Microsoft. Версия 2.7 была доступна в Американский английский, Китайский (традиционный и упрощенный), немецкий, японский, корейский, бразильский португальский, Чешский, Датский, греческий, словацкий, словенский, Испанский, финский, французский, венгерский, итальянский, нидерландский язык, Норвежский, польский, португальский, русский, шведский и турецкий. иврит и арабский были доступны только в Windows XP.

Основным изменением функции стала поддержка Microsoft 64-битный операционная система, однако поддержка Banyan VINES также был удален из этой версии MDAC. Было несколько известных проблем:[49] MDAC 2.7 продолжал вызывать проблемы с подключением на кластерных серверах под управлением Microsoft SQL Server 6.5 или SQL Server 7.0, и Microsoft не предоставила никакого обходного пути. При создании или настройке ODBC имена источников данных (DSN) с помощью драйвера ODBC Microsoft SQL Server протокол сетевой библиотеки может неожиданно переключиться на TCP / IP, даже если DSN был настроен на использование именованные каналы.[50] Эту проблему обнаружил InfoWorld репортер Рэндалл К. Кеннеди, который определил, что изменение действительно было внесено в MDAC 2.6, но так и не было задокументировано. Это было обнаружено при тестировании рабочих нагрузок клиент-серверной базы данных на компьютере с Windows XP; InfoWorld утверждает, что хотя общая загрузка ЦП сервера при использовании TCP / IP выросла всего на 8 процентов, переключатели контекста в секунду упало более чем на 150 процентов (что, конечно, невозможно, потому что тогда у вас будет отрицательная скорость переключения контекста - падение составляет 33% или 60% в зависимости от того, на какой планете находился автор во время написания) для Рабочая нагрузка на 10 пользователей. Их не впечатлило то, что фундаментальные функциональные изменения поведения Net-Lib по умолчанию произошли без простого упоминания в несвязанном документе.[51] Пользователи Windows XP также иногда испытывали проблемы с подключением к SQL Server, потому что SQL Server пытается использовать сертификаты он находит на локальном компьютере, однако, если доступно более одного сертификата, он не знает, какой из них использовать.[52] При попытке использовать Службы Microsoft Analysis Services 2000 RTM, при просмотре кубов иногда возникала ошибка.[53] Microsoft также обнаружила проблему в Windows 95, Windows 98, и Windows Me программа установки, которая предотвращала откат программы установки MDAC при обнаружении ошибки установки.[54]

Microsoft решила несколько проблем безопасности для MDAC 2.7. Дэвид Литчфилд из Следующее поколение Security Software Ltd сообщил об уязвимости системы безопасности, которая возникает из-за того, что одна из функций ODBC в MDAC, которая используется для подключения к источникам данных, содержит непроверенный буфер.[55] Еще одна уязвимость, которая была исправлена, заключалась в том, что злоумышленник мог ответить на широковещательное сообщение об обнаружении SQL Server от клиентов с помощью специально созданного пакета, который мог вызвать переполнение буфера.[56] Был обнаружен еще один недостаток, при котором код мог выполняться удаленно, когда злоумышленник отвечал на широковещательную рассылку другим специально созданным пакетом.[57]

MDAC 2.8

MDAC 2.8 был выпущен в августе 2003 года и распространялся вместе с Microsoft. Windows Server 2003, а также на Microsoft Технологии доступа к данным интернет сайт. Он не привнес в продукт никаких новых функций, но исправил ряд ошибок и проблем с безопасностью - был удален reg-файл (автоматизирует изменения в реестре), что заставило сервер работать в «небезопасном» режиме, в результате чего RDS можно было использовать для получить несанкционированный доступ к системе[58] и новое ограничение было наложено на длину строки запроса формы.[59] Также было несколько изменений администратора ODBC.[60]

23 мая 2005 г. Брэд Роудс (ведущий программный менеджер Microsoft Data Access Technologies) объявил, что MDAC 2.8 SP1 был последним автономным распространяемым пакетом MDAC, который Microsoft выпустит. MDAC теперь является официальным компонентом операционной системы Microsoft, хотя они будут предоставлять текущие исправления ошибок и безопасности для ранее выпущенных версий распространяемой через Интернет версии.[61] Однако Microsoft создала новый компонент под названием Собственный клиент SQL (SQLNCLI), который представляет собой автономный API доступа к данным, который объединил библиотеки OLE DB и ODBC в одну DLL. Он был сформирован так, чтобы быть независимым от MDAC, который теперь зависит от состояния операционной системы - разработчик теперь подключается к этой библиотеке и избегает ситуаций, когда обновление операционной системы, которое обновляет MDAC, нарушает работу приложений, созданных для другой версии MDAC.[62]

Windows 7 SP1 сломался прямая совместимость MDAC 2.8. Программное обеспечение, скомпилированное в Windows 7 с пакетом обновления 1 (SP1) и основанное на MDAC ADO, не будет работать в версиях Windows, предшествующих Windows 7 SP1 (включая Windows 7 RTM, Vista, XP).[63] Microsoft предоставила решения для обхода этой проблемы для некоторых приложений, но приложения VBA остаются уязвимыми.[64] Исправление этой проблемы было выпущено в феврале 2012 года.[65]

Windows DAC 6.0

Виндоус виста больше не будет использовать MDAC, а вместо этого будет использовать Windows DAC, который состоит из обновленных версий компонентов ADO, OLE DB и ODBC. Согласно Microsoft, «Windows DAC включает некоторые изменения для работы с Windows Vista, но почти полностью функционально эквивалентен MDAC 2.8».[66]

Проверка версии

Есть два способа проверить версию MDAC, установленную на компьютере. Для Windows 2000, Windows XP и Windows Server 2003 один из способов проверки - через Microsoft Проверка компонентов программа, которая сравнивает значение каждой установленной библиотеки DLL MDAC с манифестом файла MDAC. Второй способ - проверить ключ HKEY_LOCAL_MACHINE Software Microsoft DataAccess FullInstallVer в Реестр Windows. Microsoft notes that this information may be incorrect for versions of MDAC prior to 2.1 when compared with the versions of the MDAC files installed to the system[67]

ВерсияДата выходаВключено вФункцииПроблемы с безопасностью
1.0Август 1996 г.
  • ADC – IIS 3.0
  • OLE DB 1.1 SDK (OLE DB 1.1 and ADO 1.0) – Visual Studio
  • All components included in Visual Interdev 1.0 and with Active Server Pages (released in IIS 3.0)
  • ODBC 3.0
  • OLE DB 1.1
  • ADO 1.0
  • ADC 1.0
  • ODBC drivers for Access/Jet, SQL Server and Oracle databases

No bulletins released

1.5

September 1997 – March 1998
  • Microsoft Internet Explorer 4.0
  • Internet Client SDK 4.0 (from CD issued at Microsoft PDC)
  • ODBC 3.5
  • OLE DB 1.5
  • ADO 1.5
  • RDS 1.5 (superseded ADC 1.0)
1.5aSeptember 1997–March 1998

Service release

1.5bSeptember 1997–March 1998

Service release

1.5cSeptember 1997–March 1998
  • Fixed issues with ADO threading and ODBC Connection Pooling
  • Only came with ADO/MDAC runtime components
2.01 июля 1998 г.
  • Visual Studio 98
  • Data Access 2.0 SDK
  • ODBC 3.5 SDK
  • OLE DB 1.5 SDK
  • OLE DB for OLAP Specification
2.0SP11 июля 1998 г.
  • Windows NT 4.0 SP4

Y2K remediation for Windows NT 4.0

2.0SP21 июля 1998 г.
  • Веб-сайт Microsoft

Y2K remediation for all platforms

2.111 июля 1998 г.
  • SQL Server 7.0
  • SQL Server 6.5 SP5
  • ADO 2.1
  • RDS 2.1
  • OLE DB 2.1
  • OLE DB Provider for ODBC, SQL Server and Oracle
  • JRO 2.1
  • Драйвер ODBC
  • Jet driver
  • RDO
2.1 SP115 марта 1999 г.
  • Internet Explorer 5.0
  • Второе издание Windows 98
2.1 SP1a (GA)1 апреля 1999 г.
  • Офис 2000
  • BackOffice 4.5
  • Visual Studio 98 SP3
  • Internet Explorer 5.0a (minimal install)
2.1 SP2Июль 1999 г.
2.517 февраля 2000 г.
  • Windows 2000
  • ADO 2.5
  • ADO MD 2.5
  • ADOX 2.5
  • RDS 2.5
  • OLE DB 2.5
  • OLE DB Provider for the ODBC driver for:
    • SQL
    • Сервер
    • Site Server Search
    • Internet Publishing
    • Jet 4.0 (Access 2000)
    • Oracle
    • Indexing Services (Index Server)
    • Microsoft Data Shaping Services
    • Услуги OLAP
    • DTS Packages
    • Microsoft Directory Services
    • Server DTS Flat File
    • OLE DB Simple Provider
  • JRO 2.5
  • ODBC 3.51
  • an ODBC driver for
    • Microsoft Access
    • SQL Server
    • Майкрософт Эксель
    • Текст
    • Visual FoxPro
    • FoxPro VFP
    • dBase
    • dBase VFP
    • Парадокс
    • Oracle
  • Jet drivers for:
    • Excel
    • Microsoft Exchange
    • Доступ
    • текстовые файлы
    • Лотос 1-2-3
    • Парадокс
    • xBase
2.5 SP131 июля 2000 г.
  • Windows 2000 SP1
2.5 SP2Апрель 2000 г.
  • Windows 2000 SP2
2.5 SPS3Декабрь 2003 г.
  • Windows 2000 SP3
2.6Сентябрь 2000 г.
  • SQL Server 2000
Not included (manually installed):
  • Microsoft Jet
  • Microsoft Jet OLE DB Provider
  • ODBC Desktop Database Drivers
2.6 SP1Май 2001 г.
  • SQL Server 2000 SP1
2.6 SP2Май 2002 г.
  • SQL Server 2000 SP2
2.7Октябрь 2001 г.
  • Windows XP
  • Support for 64-bit operating systems
  • Banyan VINES support dropped
2.8Август 2003 г.
  • Windows Server 2003

Fixed bugs and security issues

2.8 SP1Май 2005 г.
  • SQL Server 2000 SP4
  • Windows XP с пакетом обновления 2 (SP2)

Fixed bugs

2.8 SP2Март 2005 г.
  • Windows Server 2003 SP1
9.0Never released
  • Visual Studio 2005 Beta 1 (Removed in subsequent releases)
  • SQL Server 2005 Beta 1 (Removed in subsequent releases)[68]
Windows DAC 6.0 (a variant of MDAC for use with Vista)Ноябрь 2006 г.
  • Version number synchronized with Windows version
  • No other new features

Рекомендации

  1. ^ Kalen Delaney, "Inside Microsoft SQL Server 2000", Microsoft PressС. 70–74.
  2. ^ MSDN, "Creating a udl file", "ADO 2.8 API Reference", accessed April 28, 2007.
  3. ^ там же.
  4. ^ Prash Shirolkar (Author); Alyssa Henry (contributor); Stephen Pepitone (Contributor); Acey J. Bunch (contributor); David Schwartz (contributor), "Data Access Technologies Road Map", Корпорация Майкрософт, accessed March 1, 2018.
  5. ^ MSDN, "Fields Collection", "ADO 2.8 API Reference", accessed September 19, 2005.
  6. ^ MSDN, "Properties Collection", "ADO 2.8 API Reference", accessed September 19, 2005.
  7. ^ MSDN, "Parameters Collection", "ADO 2.8 API Reference", accessed September 19, 2005.
  8. ^ MSDN, "Errors Collection", "ADO 2.8 API Reference", accessed September 19, 2005.
  9. ^ MSDN, "Using a connection object", "ADO 2.8 Programmers Guide", accessed September 10, 2005.
  10. ^ MSDN, "ADO Connection String", "ADO 2.8 Programmers Guide", accessed September 10, 2005.
  11. ^ MSDN, "Command Object Overview", "ADO 2.8 Programmers Guide", accessed September 10, 2005
  12. ^ MSDN, "Examining Data", "ADO 2.8 Programmers Guide", accessed September 10, 2005.
  13. ^ A full list of ADO methods and properties that allow the examination of data in a recordset can be found in Microsoft's API documentation
  14. ^ MSDN, "Editing data", "ADO 2.8 Programmers Guide", accessed September 10, 2005.
  15. ^ MSDN, "Deleting records using the Delete method", "ADO 2.8 Programmers Guide", accessed September 10, 2005.
  16. ^ MSDN, "Updating and Persisting Data", "ADO 2.8 Programmers Guide", accessed September 12, 2005.
  17. ^ MSDN, "Transaction Processing", "ADO 2.8 Programmers Guide", accessed September 12, 2005.
  18. ^ MSDN, "Record Object", "ADO 2.8 API Reference", accessed September 12, 2005.
  19. ^ MSDN, "Records and Streams", "ADO 2.8 Programmers Guide", accessed September 12, 2005.
  20. ^ MSDN, "Streams and Persistence", "ADO 2.8 Programmers Guide", accessed September 12, 2005.
  21. ^ MSDN, "Parameter Object", "ADO 2.8 API Reference", accessed September 12, 2005.
  22. ^ MSDN, "Field Object", "ADO 2.8 API Reference", accessed September 12, 2005.
  23. ^ MSDN, "Property Object" "ADO 2.8 Programmers Guide", accessed September 13, 2005.
  24. ^ MSDN, "Error Handling", "ADO 2.8 Programmers Guide", accessed September 18, 2005.
  25. ^ MSDN, "Field-Related Error Information", "ADO 2.8 Programmers Guide", accessed September 18, 2005; & MSDN, "Recordset-Related Error Information", "ADO 2.8 Programmers Guide", accessed September 18, 2005.
  26. ^ Doug Rothaus & Mike Pizzo, "ADO.NET for the ADO Programmer", MSDN, accessed September 22, 2005.
  27. ^ Microsoft, Deprecated Components (OLE DB), retrieved August 5, 2005.
  28. ^ Hamilton, Bill (2008). ADO.NET 3.5 Cookbook. Cookbook Series (2 ed.). O'Reilly Media, Inc. стр. 27. ISBN  9780596101404. Получено 2012-10-09. [...] use the [...] Oracle OLE DB provider (MSDAORA) to access Oracle data.
  29. ^ Microsoft, "Data Access Technologies Road Map", Deprecated MDAC Components, Microsoft "ADO Programmer's Guide" Appendix A: Providers, Microsoft OLE DB Provider for ODBC В архиве 2001-10-05 at the Wayback Machine, retrieved July 30, 2005.
  30. ^ Microsoft, MS KB article 244661: INFO: Limitations of Microsoft Oracle ODBC Driver and OLEDB Provider, last reviewed August 25, 2004, retrieved August 4, 2005.
  31. ^ Microsoft, "Remote Data Service (RDS)", retrieved August 11, 2005.
  32. ^ Microsoft, "Data Access Technologies Roadmap", "Deprecated MDAC Components"
  33. ^ Kalen Delaney, "Inside Microsoft SQL Server 2000", Microsoft Press, p65.
  34. ^ Christine Solomon, "Microsoft Office 97 Developer's Handbook", Microsoft Press. С. 195–200.
  35. ^ (на немецком) Christian Koller, "ADO und MDAC Versionen"  : MDAC 1.0 and 1.1 (OLE DB 1.0 and OLE DB 1.1) accessed July 1, 2005.
  36. ^ а б c d INFO: What are MDAC, DA SDK, ODBC, OLE DB, ADO, RDS, and ADO/MD?, Microsoft, March 14, 2005, получено 2005-07-01
  37. ^ а б Koller, Christian, "ADO und MDAC Versionen", MDAC 1.5 (на немецком), получено 2005-07-01
  38. ^ Microsoft, Microsoft Security Program: Frequently Asked Questions: Microsoft Security Bulletin (MS99-025), accessed July 6, 2005.
  39. ^ Microsoft, PRB: RDS Handler Error Messages Due to Security Settings (last reviewed September 30, 2003), accessed July 6, 2005; Microsoft Security Program: Microsoft Security Bulletin (MS98-004) : "Unauthorized ODBC Data Access with RDS and IIS" (last revision: July 17, 1998), accessed July 6, 2005; CVE vulnerability CVE -1999-1011.
  40. ^ Christian Koller, "ADO und MDAC Versionen" : MDAC 2.0, accessed July 1, 2005.
  41. ^ (на немецком) Christian Koller, "ADO und MDAC Versionen" : MDAC 2.1, accessed July 1, 2005.
  42. ^ Microsoft, "Data Access Components: Security Hotfix for Q329414"; Microsoft Security Bulletin MS02-06 – originally Microsoft KB article Q329414) – (originally posted November 20, 2002), accessed July 6, 2005.
  43. ^ (на немецком) Christian Koller, "ADO und MDAC Versionen" : MDAC 2.5, accessed July 1, 2005.
  44. ^ Microsoft, MS KB article 320700, "OLE DB Session Pooling Causes 100 Percent CPU Usage (MDAC 2.5)", accessed July 6, 2005.
  45. ^ Microsoft, MS KB article 842272 Release manifest for MDAC 2.6 (2.60.6526.3), accessed July 6, 2005.
  46. ^ Microsoft, MS KB article 271908 MDAC version 2.6 and later do not contain Jet or Desktop ODBC drivers, accessed July 6, 2005.
  47. ^ Microsoft, MS KB article 820754 MDAC 2.6 or later should not be installed on SQL Server 7.0 clusters, accessed July 6, 2005.
  48. ^ Veritas, Document ID: 258144 VERITAS Backup Exec (tm) 9.0 for Windows Servers should not be installed on a Microsoft SQL Server 7.0 Cluster. В архиве 2013-01-05 в Archive.today
  49. ^ "Release manifest for MDAC 2.7 Refresh (2.70.9001.0)". Support.microsoft.com. Получено 2019-04-10.
  50. ^ Microsoft, MS KB article 289573 PRB: Configuring DSNs with SQL Server Net-Libraries.
  51. ^ Kennedy, Randall C. (21 November 2001). "It's not a bug, it's a feature". InfoWorld. IDG. Архивировано из оригинал 10 марта 2007 г.
  52. ^ Microsoft, MS KB article 309398 SQL Server 2000 installation or local connections fail with "SSL Security error:ConnectionOpen (SECDoClientHandshake())" error message.
  53. ^ Microsoft, MS KB article 297232 FIX: Cannot Browse Cubes or Process Mining Model After You Install Analysis Services 2000 RTM.
  54. ^ Microsoft, MS KB article 311720 PRB: MDAC Rollback May Fail on Windows 95, Windows 98, and Windows Millennium Edition.
  55. ^ Microsoft, Microsoft Security Bulletin MS02-040 Unchecked Buffer in MDAC Function Could Enable System Compromise (Q326573).
  56. ^ Microsoft, Microsoft Security Bulletin MS03-033 Unchecked Buffer in MDAC Function Could Enable System Compromise (823718)
  57. ^ Microsoft, Microsoft Security Bulletin MS04-003 Buffer Overrun in MDAC Function Could Allow Code Execution (832483)
  58. ^ Microsoft. MS KB article 818490: INFO: Handunsf.reg File Has Been Removed in MDAC 2.8 Redist Setup for Security Reasons
  59. ^ Microsoft. MS KB article 838405: FIX: "Argument passed to data shaping service was invalid" error after you apply MDAC 2.8
  60. ^ Microsoft. MS KB article 818489, INFO: ODBC Administrator Changes in MDAC 2.8.
  61. ^ Brad Rhodes (blog entry), The end of the MDAC Redistributable, May 23, 2005, retrieved August 11, 2005; & Microsoft, MS KB article 892854: "Release strategy for Microsoft Data Access Components", last updated January 24, 2005, retrieved August 11, 2005.
  62. ^ Acey J. Bunch (April 26, 2005), "Introducing SQL Native Client", MSDN блог Вход.
  63. ^ MSDN, "Breaking change in MDAC ADODB COM components in Windows 7 Service Pack 1", "Forum", accessed March 9, 2011.
  64. ^ KB 2517589, "An ADO application that is re-compiled on a Windows 7 Service Pack 1-based computer does not run on down-level operating systems", "", accessed March 17, 2011.
  65. ^ KB 2640696, "An ADO-based application that is compiled in Windows 7 SP1 or in Windows Server 2008 R2 SP1 does not run in earlier versions of Windows", "", accessed April 20, 2012.
  66. ^ Microsoft, "FAQ About Windows DAC/MDAC". Accessed 12th December, 2006.
  67. ^ Microsoft. MS KB article 301202, How to check for MDAC version, last updated January 18, 2005, retrieved September 29, 2005.
  68. ^ Chapter 11 Changes, supplementary material to "A First Look at SQL Server 2005 for Developers" by Bob Beauchemin, Niels Berglund, and Dan Sullivan. В архиве March 24, 2006, at the Wayback Machine

дальнейшее чтение

  1. "ADO API Reference". MSDN. Microsoft. Получено 3 мая 2014.
  2. "ADO Programmer's Guide". MSDN. Microsoft. Получено 3 мая 2014.
  3. Delaney, Kalen (2000). Inside Microsoft SQL Server 2000 (3-е изд.). Microsoft Press. ISBN  9780735609983.
  4. Rothaus, Doug; Mike, Pizzo (December 2001). "ADO.NET for the ADO Programmer". MSDN. Microsoft. Получено 3 мая 2014.
  5. Shirolkar, Prash; Henry, Alyssa; Pepitone, Stephen; Bunch, Acey J.; Schwartz, David (January 2013). "Data Access Technologies Road Map". MSDN. Microsoft. Получено 3 мая 2014.
  6. Solomon, Christine (1997). Microsoft Office 97 Developer's Handbook. Microsoft Press. ISBN  9781572316065.

внешняя ссылка