Компоненты доступа к данным Microsoft
В этой статье нечеткий стиль цитирования . ( Август 2013 г. ) |
Разработчик(и) | Майкрософт |
---|---|
Финальный выпуск | 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 |
Тип | База данных |
Лицензия | Бесплатное ПО |
Веб-сайт | мсдн2 |
Компоненты доступа к данным Microsoft ( MDAC ; также известные как Windows DAC ) — это платформа взаимосвязанных технологий Microsoft , которая позволяет программистам единый и комплексный способ разработки приложений, которые могут получить доступ практически к любому хранилищу данных. В его состав входят: объекты данных ActiveX (ADO), OLE DB и Open Database Connectivity (ODBC). Также имеется несколько устаревших компонентов, таких как Jet Database Engine , MSDASQL (поставщик OLE DB для ODBC) и Remote Data Services (RDS). Некоторые компоненты также устарели , например, бывший объектов доступа к данным API и объекты удаленных данных .
Первая версия MDAC была выпущена в августе 1996 года. В то время Microsoft заявила, что MDAC — это скорее концепция, чем отдельная программа, и не имеет широко распространенного метода распространения. Позже Microsoft выпустила обновления MDAC в виде распространяемых через Интернет пакетов. В конце концов, более поздние версии были интегрированы с Microsoft Windows и Internet Explorer , а в MDAC 2.8 SP1 они перестали предлагать MDAC в качестве распространяемого пакета.
На протяжении всей своей истории MDAC был объектом нескольких недостатков безопасности , которые приводили к таким атакам, как атака с повышением привилегий , хотя уязвимости, как правило, устранялись в более поздних версиях и довольно оперативно. Текущая версия — 2.8 с пакетом обновления 1, но у продукта было много разных версий, и многие его компоненты устарели и заменены более новыми технологиями Microsoft. MDAC теперь известен как Windows DAC в Windows Vista .
Архитектура
[ редактировать ]Последняя версия MDAC (2.8) состоит из нескольких взаимодействующих компонентов, каждый из которых предназначен для Windows, за исключением ODBC (который доступен на нескольких платформах). Архитектуру MDAC можно рассматривать как три уровня: уровень интерфейса программирования, состоящий из ADO и ADO.NET , уровень доступа к базе данных, разработанный такими поставщиками баз данных, как Oracle и Microsoft ( OLE DB , управляемые поставщики .NET и драйверы ODBC ), и уровень сама база данных. Все эти уровни компонентов доступны приложениям через API MDAC . Сетевая библиотека 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: первичный и вторичный. Основная сетевая библиотека состоит из Super Socket сетевой библиотеки и сетевой библиотеки общей памяти , в то время как существует множество вторичных сетевых библиотек, включая TCP/IP и сетевые библиотеки именованных каналов (именованные каналы — это метод взаимодействия с другими процессами). через системный конвейер , которому присваивается идентификатор). Поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) взаимодействует через основные сетевые библиотеки.
Super Socket Net-Lib занимается межкомпьютерной связью и координирует вторичные Net-Lib, хотя вторичная Net-Lib TCP/IP является исключением, поскольку она напрямую обращается к API Windows Sockets 2 . Banyan VINES , AppleTalk , ServerNet , IPX/SPX , Giganet и RPC Net-Libs были удалены, начиная с MDAC 2.5. Маршрутизатор сетевой библиотеки должен был управлять всеми этими протоколами, однако теперь маршрутизатор управляет только вторичным Net-Lib именованных каналов. Super Socket Net-Lib также обеспечивает шифрование данных с помощью Windows SSL API.
Сетевая библиотека общей памяти, с другой стороны, управляет соединениями между несколькими экземплярами SQL Server, существующими на одном компьютере. Он использует общую область памяти для связи между процессами. Это по своей сути безопасно; нет необходимости в шифровании данных между экземплярами SQL Server, существующими на одном компьютере, поскольку операционная система не разрешает другим процессам доступ к области общей памяти экземпляров.
Net-Lib также может поддерживать олицетворение контекста безопасности вошедшего в систему пользователя для протоколов, поддерживающих соединения с проверкой подлинности (называемые доверенными соединениями ). Это позволяет Net-Lib предоставлять интегрированный механизм аутентификации при входе в систему с помощью проверки подлинности Windows . Аутентификация Windows не поддерживается в Windows 98 или Windows Me. [1]
OLE БД
[ редактировать ]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]
ОДБК
[ редактировать ]Open Database Connectivity (ODBC) — это собственный интерфейс, доступ к которому осуществляется через язык программирования (обычно C ), который может выполнять вызовы в собственную библиотеку . В MDAC этот интерфейс определяется как DLL. отдельный модуль или драйвер Для каждой базы данных, к которой требуется доступ, необходим . Функции API ODBC реализуются этими драйверами, специфичными для СУБД. Драйвер, который Microsoft предоставляет в MDAC, называется драйвером ODBC SQL Server (SQLODBC) и (как следует из названия) предназначен для SQL Server Microsoft. Он поддерживает SQL Server v6.5 и выше. [3] ODBC позволяет программам использовать SQL- запросы, которые будут обращаться к базам данных без необходимости знать собственные интерфейсы к базам данных. Он обрабатывает запрос SQL и преобразует его в запрос, понятный отдельной системе базы данных. По словам Microsoft, «после SQL Server 2012 драйвер ODBC будет обновлен для самых последних функций сервера, включая базу данных SQL Microsoft Windows Azure, и выпущен как драйвер Microsoft ODBC для SQL Server». [4]
УКРАШЕНИЕ
[ редактировать ]Объекты данных ActiveX ( ADO ) — это программный интерфейс высокого уровня для OLE DB. Он использует иерархическую объектную модель, позволяющую приложениям программно создавать, извлекать, обновлять и удалять данные из источников, поддерживаемых OLE DB. ADO состоит из серии иерархических объектов и коллекций на основе COM, объекта, который действует как контейнер многих других объектов. Программист может напрямую обращаться к объектам ADO для манипулирования данными или отправлять SQL- запрос в базу данных с помощью нескольких механизмов ADO. ADO состоит из девяти объектов и четырех коллекций .
Коллекции:
- Поля: эта коллекция содержит набор объектов Field. Коллекцию можно использовать либо в объекте Recordset, либо в объекте Record. В объекте Recordset каждый из объектов Field, составляющих коллекцию Fields, соответствует столбцу в этом объекте Recordset. В объекте Record поле может быть абсолютным или относительным URL-адресом, указывающим на пространство имен с древовидной структурой (используется для поставщиков полуструктурированных данных , таких как поставщик Microsoft OLE DB для публикации в Интернете) или как ссылка на связанный по умолчанию объект Stream. с этим объектом Record. [5]
- Свойства: объект может иметь несколько объектов Property, которые содержатся в коллекции свойств объекта. [6]
- Параметры: объект команды может иметь несколько команд параметров для изменения его предопределенного поведения, и каждый из объектов параметров содержится в коллекции параметров объекта команды. [7]
- Ошибки: все ошибки, созданные поставщиком, передаются в коллекцию объектов Error, а сама коллекция Errors содержится в объекте Connection. Когда операция ADO создает ошибку, коллекция очищается и в коллекции создается новая группа объектов Error. [8]
Объекты:
- Соединение: объект соединения — это соединение ADO с хранилищем данных через OLE DB. Объект подключения хранит информацию о сеансе и предоставляет методы подключения к хранилищу данных. Поскольку в некоторых хранилищах данных используются разные методы установления соединения, некоторые методы могут не поддерживаться в объекте соединения для определенных поставщиков OLE DB. Объект подключения подключается к хранилищу данных, используя метод «Открыть» со строкой подключения, которая определяет соединение в виде списка пар ключ-значение (например: «
Provider='SQLOLEDB';Data Source='TheSqlServer'; Initial Catalog='Northwind';Integrated Security='SSPI';
"). [9] Начало которого должно идентифицировать тип подключения к хранилищу данных, который требуется объекту подключения. Это должно быть либо: - Команда: после того, как объект подключения устанавливает сеанс с источником данных, инструкции отправляются поставщику данных через объект команды. Объект команды может отправлять запросы SQL непосредственно поставщику с помощью свойства CommandText , отправлять параметризованный запрос или хранимую процедуру с помощью объекта параметра или коллекции параметров или запускать запрос и возвращать результаты объекту набора данных через Выполнить метод. Существует несколько других методов, которые можно использовать в объекте Command, относящемся к другим объектам, таким как объекты Stream, RecordSet или Connection. [11]
- . Набор записей Набор записей — это группа записей, которая может поступать либо из базовой таблицы, либо в результате запроса к таблице. Объект RecordSet содержит коллекцию Fields и коллекцию Properties . [12] Коллекция Fields представляет собой набор объектов Field, которые представляют собой соответствующие столбцы в таблице. Коллекция Properties представляет собой набор объектов Property, которые определяют определенные функции поставщика OLE DB. RecordSet имеет множество методов и свойств для проверки данных, находящихся в нем. [13] Записи в наборе записей можно обновить, изменив значения в записи и затем вызвав метод
Update
илиUpdateBatch
метод. Добавление новых записей осуществляется черезAddNew
функцию, а затем вызвавUpdate
илиUpdateBatch
метод. [14] Записи также удаляются в наборе записей с помощью метода Delete, а затем путем вызова метода Update. Однако если по какой-либо причине удаление не может произойти, например, из-за нарушений ссылочной целостности , то набор записей останется в режиме редактирования после вызова методаUpdate
метод. Программист должен явно вызватьCancelUpdate
функция отмены обновления. Кроме того, ADO может откатывать транзакции (если это поддерживается) и отменять пакетные обновления. [15] Наборы записей также можно обновлять одним из трех способов: посредством немедленного обновления, посредством пакетного обновления, [16] или с помощью транзакций:- Немедленно: набор записей блокируется с помощью
adLockOptimistic
илиadLockPessimistic
замок. Данные обновляются в источнике данных после изменения записи иUpdate
метод называется. - Пакетный режим: набор записей блокируется с помощью
adLockBatchOptimistic
и каждый разUpdate
называется обновлением данных во временном буфере. Наконец, когдаUpdateBatch
называется, что данные полностью обновляются обратно в источник данных. Преимущество этого подхода в том, что все это делается в памяти, и если возникает проблема, тоUpdateCancel
вызывается, и обновления не отправляются в источник данных - Транзакция: если поставщик OLE DB позволяет это, транзакции можно использовать . Чтобы начать транзакцию, программист вызывает
BeginTrans
метод и выполняет необходимые обновления. Когда все они выполнены, программист вызывает командуCommitTrans
метод.RollbackTrans
может быть вызван для отмены любых изменений, внесенных внутри транзакции, и возврата базы данных к состоянию до начала транзакции. [17]
- Немедленно: набор записей блокируется с помощью
- Запись: этот объект представляет одну запись в базе данных и содержит коллекцию полей. RecordSet состоит из коллекции объектов Record. [18]
- Поток: поток, в основном используемый в объекте RecordSet, является средством чтения и записи потока байтов. [19] Чаще всего он используется для сохранения набора записей в формате XML. [20] для отправки команд поставщику OLE DB в качестве альтернативы объекту CommandText и для хранения содержимого двоичного или текстового файла.
- Параметр: параметр — это средство изменения поведения общей части функциональности, например, хранимой процедуре могут быть переданы разные параметры в зависимости от того, что необходимо сделать; они называются параметризованными командами . [21]
- Поле: каждый объект Record содержит множество полей, а объект RecordSet также имеет соответствующий объект Field. Объект Field объекта RecordSet соответствует столбцу в таблице базы данных, на которую он ссылается. [22]
- Свойство: этот объект специфичен для поставщика OLE DB и определяет возможность, реализованную поставщиком. Объект свойства может быть либо встроенным свойством (это четко определенное свойство, уже реализованное ADO и, следовательно, не может быть изменено), либо динамическим свойством (определенным базовым поставщиком данных и может быть изменено). [23]
- Ошибка: поставщика OLE DB если во время использования ADO возникает ошибка , в коллекции ошибок создается объект Error. [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 — модифицированную версию поставщика OLE DB, специально разработанную для .NET. Структура объекта больше не строится вокруг объекта Recordset. Вместо этого объект Dataset используется для хранения данных, собранных из нескольких источников. Это прозрачно для программиста. В отличие от старого набора записей ADO, дизайн набора данных предполагает использование несвязанных данных. Концептуально объект Dataset можно рассматривать как небольшую реляционную базу данных в памяти, которая позволяет манипулировать данными в любом направлении. Для распространения изменений обратно в базу данных используется объект DataAdapter , который передает данные между источником данных и объектом DataSet. Курсоры также устарели в ADO.NET и были заменены объектом DataReader , который используется для эффективной обработки большого списка результатов по одной записи за раз без их сохранения. [26]
Устаревшие и устаревшие компоненты
[ редактировать ]MDAC — это постоянно развивающаяся компонентная среда. Таким образом, было несколько компонентов, которые ранее были его частью, но с тех пор были признаны устаревшими или полностью удалены из платформы.
Jet Database Engine и JRO
[ редактировать ]Jet означает Joint Engine Technology и был ядром базы данных , используемым для Microsoft Access , Microsoft Exchange Server и Visual Basic . Jet был частью системы управления реляционными базами данных (RDBMS) и предлагал единый интерфейс , который другое программное обеспечение могло использовать для доступа к базам данных Microsoft. Jet также обеспечивал поддержку безопасности, ссылочной целостности , обработки транзакций , индексации , блокировки записей и страниц, а также репликации данных. В более поздних версиях Jet механизм был расширен для выполнения SQL- запросов, хранения символьных данных в формате Unicode , создания представлений и обеспечения двунаправленной репликации с Microsoft SQL Server. Его заменил MSDE , который заменил SQL Server Express .
В Jet было три модуля. Одним из них был Native Jet ISAM Driver Jet , динамическая библиотека (DLL), которая могла напрямую манипулировать файлами базы данных Microsoft Access (MDB), которая представляла собой модифицированную форму базы данных индексированного последовательного метода доступа (ISAM). Еще одним из модулей были драйверы ISAM , библиотеки DLL, которые обеспечивали доступ к базам данных ISAM, среди которых были Xbase , Paradox , Btrieve и FoxPro файлы . Последним модулем была DLL Data Access Objects (DAO) , DAO позволяла программистам получить доступ к движку Jet. По сути, это был объектно-ориентированный язык данных, используемый разработчиками приложений Access Basic и Visual Basic для доступа к Jet.
Аналогичным образом, поставщик OLE DB Microsoft Jet и объекты репликации (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. Неподдерживаемые функции:
- CLOB , BLOB , BFILE , NCHAR , NCLOB и NVARCHAR2 . Типы данных Oracle
- Поддержка Unicode для Oracle 7.x и 8i
- несколько клиентских экземпляров Oracle
- вложенные внешние соединения
Microsoft изначально отказалась от компонента MSDASQL для своих 64-битных операционных систем. [29] а драйвер Microsoft Oracle ODBC позже был заменен управляемым поставщиком Oracle .NET, который поддерживал Oracle 9i. [30] Однако Windows Server 2008 и Windows Vista SP1 поставляются с 64-разрядной версией MSDASQL.
Службы удаленных данных (RDS)
[ редактировать ]Службы удаленных данных (RDS) позволяли получать набор данных с сервера, которые клиент затем каким-то образом изменял, а затем отправлял обратно на сервер для дальнейшей обработки. [31] С популярным распространением Transact-SQL , который расширяет SQL такими программными конструкциями, как циклы и условные операторы, это стало менее необходимым и в конечном итоге было признано устаревшим в MDAC 2.7. Microsoft выпустила SOAP Toolkit 2.0, который позволяет клиентам делать это с помощью открытого стандарта на основе XML . [32]
SQLXML
[ редактировать ]SQLXML был разработан для SQL Server 2000, но устарел в MDAC 2.6. Это позволило просматривать реляционную базу данных Microsoft с помощью XPath и просматривать данные в виде XML- файла. На самом деле он не устарел, но был удален из более поздних версий MDAC, хотя Microsoft предоставляет его в качестве загружаемого компонента и будет поддерживать его в своих 64-битных операционных системах.
Устаревшие компоненты
[ редактировать ]Некоторые компоненты были полностью удалены из MDAC компанией Microsoft и больше не поддерживаются. Они есть:
- ESQL/C: Встроенный SQL (также известный как E-SQL или ESQL/C) — это способ использования SQL при программировании на Visual C. Microsoft отказалась от его поддержки после выпуска SQL Server 6.5, хотя они лицензировали некоторые из ESQL/C. /C среду выполнения компании Micro Focus , которая разрабатывает COBOL. компиляторы и инструменты [33]
- DAO: DAO или объекты доступа к данным представляли собой объектно-ориентированный интерфейс, созданный Microsoft, который позволял ранним версиям Microsoft Access и Visual Basic получать доступ к Jet Database Engine . Позже (в версии 3.5) появилась возможность вообще обойти механизм Jet и получить прямой доступ к источникам данных ODBC . [34]
- RDO: Remote Data Objects , или RDO, — это технология Microsoft , которая позволяла создавать интерфейсы, которые напрямую обращались к ODBC. RDO версии 2.0 была последней версией, разработанной Microsoft.
- DB-Library: API на основе C, который позволял приложению взаимодействовать с SQL Server. Он не будет поддерживаться ни в одном продукте после SQL Server 2000, а после SQL Server 6.5 не было добавлено никаких функций.
История
[ редактировать ]Microsoft с течением времени выпустила несколько версий 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 и Advanced Data Connector (ADC) 1.0, который, по мнению Microsoft, был предшественником службы удаленных данных MDAC 1.5. Он также включал драйверы ODBC для баз данных Access/Jet, SQL Server и Oracle . MDAC 1.0 был выпущен с помощью нескольких механизмов: Advanced Data Connector, поставляемый с Internet Information Server (IIS) 3.0 и в виде загружаемого CAB-файла ; OLE DB 1.1 и ADO 1.0 поставлялись с пакетом SDK OLE DB 1.1, который входил в состав Visual Studio 97 и который также можно было загрузить. [36] MDAC 1.0 поставлялся с Active Server Pages, которые входили в состав IIS 3.0, а также с Visual InterDev 1.0. [37]
МДАК 1.5
[ редактировать ]MDAC 1.5 был выпущен в период с сентября 1997 г. по март 1998 г. и включал более централизованный механизм распространения, чем MDAC 1.0. Он был выпущен вместе с Microsoft Internet Explorer 4.0, Internet Client SDK 4.0 и на компакт-диске, распространенном на конференции профессиональных разработчиков (PDC) 1997 года. Было пять версий 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 состояли из:
- ОДБК 3.5
- ОЛЕ БД 1.5
- УКРАШЕНИЕ 1.5
- Remote Data Service 1.5, пришедшая на смену Advanced Data Connector. [36]
Эта версия MDAC имела недостаток безопасности, который делал ее уязвимой для атаки с повышением привилегий . Уязвимость приводила к тому, что системы, в которых были установлены как IIS, так и MDAC, давали неавторизованному веб-пользователю возможность выполнять команды оболочки в системе IIS в качестве привилегированного пользователя. Это позволило злоумышленнику использовать MDAC для туннелирования SQL и других запросов данных ODBC через общедоступное соединение с частной внутренней сетью в многодомовой системе IIS, подключенной к Интернету. Это также позволило пользователю получить несанкционированный доступ к защищенным, неопубликованным файлам в системе IIS. [38]
MDAC 1.5 был последней версией компонента доступа к данным, поддерживаемой Windows NT 3.51 SP5.
МДАК 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]
МДАК 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, BackOffice 4.5 и Visual Studio 98 SP3. Однако ни одна из этих версий MDAC не была выпущена для широкой публики через Всемирную паутину . MDAC 2.1 SP2 распространялся с веб-сайта Microsoft. Компоненты, включенные в версию 2.1:
- УКРАШЕНИЕ 2.1
- РДС 2.1
- ОЛЕ БД 2.1
- поставщик OLE DB для ODBC, SQL Server и Oracle
- ОРО 2.1
- водитель реактивного самолета
- РДО. [41]
В этой версии были уязвимости безопасности, из-за которых непроверяемый буфер мог позволить провести атаку с повышенными привилегиями. Это было обнаружено некоторое время спустя, затронуло MDAC 2.1, 2.5 и 2.6 и было исправлено в более позднем патче. [42]
МДАК 2.5
[ редактировать ]MDAC 2.5 был выпущен 17 февраля 2000 г. и распространялся вместе с Windows 2000 , а пакеты обновлений MDAC выпускались параллельно с пакетами обновлений Windows 2000. Они также распространялись через веб-сайт Microsoft. Выпущено три пакета обновлений. Компоненты, включенные в версию 2.5, были:
- УКРАШЕНИЕ 2.5
- АДО МД 2.5
- АДОКС 2.5
- РДС 2.5
- ОЛЕ БД 2.5
- многие поставщики OLE DB
- СРО 2.5
- ОДБК 3.51
- множество драйверов ODBC
- многие водители самолетов. [43]
В этой версии MDAC было обнаружено несколько проблем. При использовании пула сеансов OLE DB Microsoft COM+ будет пытаться непрерывно загружать и выгружать OLE DB, и может возникнуть конфликт, из-за которого пул сеансов OLE DB будет работать со 100% загрузкой ЦП. Позже это было исправлено. [44] Microsoft опубликовала полный список ошибок, исправленных в MDAC 2.5 Service Pack 2 и MDAC 2.5 Service Pack 3 . Также существовала уязвимость безопасности (позже исправлена), из-за которой в драйвере SQL Server был обнаружен непроверяемый буфер. Этот недостаток был представлен в MDAC 2.5 SP2.
МДАК 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, поставщик OLE DB Microsoft Jet и драйверы базы данных настольного компьютера ODBC не были включены. Вместо этого их можно установить вручную. [46] Microsoft также выпустила предупреждение о том, что MDAC 2.6 не следует устанавливать в кластере SQL Server 7.0, поскольку «если вы установите MDAC 2.6 или более позднюю версию на любой узел кластера, напрямую или посредством установки другой программы, это может привести к катастрофическому сбою». сбой агента SQL Server или других служб SQL Server». [47] Эта проблема затронула Veritas Software Backup Exec 9.0 для серверов Windows от , поскольку в качестве базы данных она устанавливает Microsoft SQL Server 2000 Desktop Engine (MSDE 2000). В версии 4367 установлена версия MDAC 2.6 с пакетом обновления 2, а в версии 4454 установлена версия MDAC 2.7 с пакетом обновления 1, в которой не было проблемы. [48]
МДАК 2.7
[ редактировать ]MDAC 2.7 был выпущен в октябре 2001 года через веб-сайт Microsoft. Обновленная версия была выпущена в апреле 2002 года вместе с выпуском Windows XP и через веб-сайт Microsoft. Версия 2.7 была доступна на американском английском , китайском (традиционном и упрощенном), немецком, японском, корейском, бразильском португальском , чешском , датском, греческом , словацком , словенском , испанском, финском, французском, венгерском, итальянском, голландском , норвежском, польском, Португальский, русский, шведский и турецкий . Иврит и арабский языки были доступны только в Windows XP.
Основным изменением функции стала поддержка 64-битной поддержка Banyan VINES операционной системы Microsoft, однако из этой версии 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 процента, либо 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. Дэвид Литчфилд из компании Next Generation Security Software Ltd сообщил об уязвимости безопасности, возникшей из-за того, что одна из функций ODBC в MDAC, которая используется для подключения к источникам данных, содержала непроверяемый буфер. [55] Другая уязвимость, которая была исправлена, заключалась в том, что злоумышленник мог ответить на сообщение об обнаружении SQL Server, транслируемое клиентами, с помощью специально созданного пакета, который мог вызвать переполнение буфера. [56] Был обнаружен еще один недостаток: код мог выполняться удаленно, когда злоумышленник отвечал на широковещательную рассылку другим специально созданным пакетом. [57]
МДАК 2.8
[ редактировать ]MDAC 2.8 был выпущен в августе 2003 года и распространялся вместе с Microsoft Windows Server 2003 , а также на веб-сайте Microsoft Data Access Technologies . Он не привнес в продукт никаких новых функций, но исправил ряд ошибок и проблем безопасности: был удален reg-файл (автоматизирующий изменения в реестре), из-за которого сервер работал в «небезопасном» режиме, в результате чего RDS можно было использовать для получить несанкционированный доступ к системе [58] и было наложено новое ограничение на длину строки запроса Shape. [59] Также было несколько изменений в администраторе ODBC. [60]
23 мая 2005 г. Брэд Роудс (ведущий менеджер программы Microsoft Data Access Technologies) объявил, что MDAC 2.8 SP1 был последним автономным распространяемым пакетом MDAC, который будет поставляться Microsoft. MDAC теперь является официальным компонентом операционной системы Microsoft, хотя они будут постоянно предоставлять исправления ошибок и безопасности для ранее выпущенных версий распространяемой через Интернет версии. [61] Однако Microsoft создала новый компонент под названием SQL Native Client (SQLNCLI), который представляет собой автономный API доступа к данным, объединивший библиотеки OLE DB и ODBC в одну DLL. Она была создана независимо от MDAC, который теперь зависит от состояния, в котором находится операционная система: разработчик теперь связывается с этой библиотекой и избегает ситуаций, когда обновление операционной системы, которое обновляет MDAC, нарушает работу приложений, созданных для другой версии. МДАК. [62]
В Windows 7 SP1 нарушена совместимость MDAC 2.8. Программное обеспечение, скомпилированное в Windows 7 SP1 и использующее MDAC ADO, не будет работать в версиях Windows, предшествующих Windows 7 SP1 (включая Windows 7 RTM, Vista, XP). [63] Microsoft предоставила решения для решения этой проблемы для некоторых приложений, но приложения VBA остаются затронутыми. [64] Исправление этой проблемы было выпущено в феврале 2012 года. [65]
Windows ЦАП 6.0
[ редактировать ]Windows Vista больше не будет использовать 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 Component Checker , которая сравнивает значение каждой установленной библиотеки DLL MDAC с манифестом файла MDAC. Второй способ – проверить ключ HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\FullInstallVer
в реестре Windows . Microsoft отмечает, что эта информация может быть неверной для версий MDAC до 2.1 по сравнению с версиями файлов MDAC, установленными в системе. [67]
Версия | Дата выпуска | Входит в комплект | Функции | Проблемы безопасности |
---|---|---|---|---|
1.0 | август 1996 г. |
|
| Бюллетени не выпускаются |
1.5 | Сентябрь 1997 г. - март 1998 г. |
|
| |
1.5а | Сентябрь 1997 г. – март 1998 г. | Релиз сервиса | ||
1.5б | Сентябрь 1997 г. – март 1998 г. |
| Релиз сервиса | |
1.5с | Сентябрь 1997 г. – март 1998 г. |
| ||
2.0 | 1 июля 1998 г. |
|
| |
2.0СП1 | 1 июля 1998 г. |
| Исправление проблем 2000 года для Windows NT 4.0 | |
2.0СП2 | 1 июля 1998 г. |
| Исправление проблем 2000 года для всех платформ | |
2.1 | 11 июля 1998 г. |
|
| |
2.1 SP1 | 15 марта 1999 г. |
| ||
2.1 SP1a (GA) | 1 апреля 1999 г. |
| ||
2.1 SP2 | июль 1999 г. | |||
2.5 | 17 февраля 2000 г. |
|
| |
2.5 СП1 | 31 июля 2000 г. |
| ||
2.5 СП2 | апрель 2000 г. |
| ||
2.5 СПС3 | декабрь 2003 г. |
| ||
2.6 | сентябрь 2000 г. |
| В комплект не входит (устанавливается вручную):
| |
2.6 СП1 | май 2001 г. |
| ||
2.6 СП2 | май 2002 г. |
| ||
2.7 | Октябрь 2001 г. |
|
| |
2.8 | август 2003 г. |
| Исправлены ошибки и проблемы безопасности | |
2.8 СП1 | май 2005 г. |
| Исправлены ошибки | |
2.8 СП2 | март 2005 г. |
| ||
9.0 | Никогда не выпускался |
| ||
Windows DAC 6.0 (вариант MDAC для использования с Vista) | ноябрь 2006 г. |
|
Ссылки
[ редактировать ]- ^ Кален Делани, «Внутри Microsoft SQL Server 2000», Microsoft Press , стр. 70–74.
- ^ MSDN , «Создание файла udl» , «Справочник по API ADO 2.8», по состоянию на 28 апреля 2007 г.
- ^ Там же.
- ^ Праш Широлкар (Автор); Алисса Генри (соавтор); Стивен Пепитон (соавтор); Эйси Дж. Банч (соавтор); Дэвид Шварц (соавтор), «Дорожная карта технологий доступа к данным» , Microsoft Corporation , по состоянию на 1 марта 2018 г.
- ^ MSDN , «Коллекция полей» , «Справочник по API ADO 2.8», по состоянию на 19 сентября 2005 г.
- ^ MSDN , «Коллекция свойств» , «Справочник по API ADO 2.8», по состоянию на 19 сентября 2005 г.
- ^ MSDN , «Коллекция параметров» , «Справочник по API ADO 2.8», по состоянию на 19 сентября 2005 г.
- ^ MSDN , «Коллекция ошибок» , «Справочник по API ADO 2.8», по состоянию на 19 сентября 2005 г.
- ^ MSDN , «Использование объекта подключения» , «Руководство программиста ADO 2.8», по состоянию на 10 сентября 2005 г.
- ^ MSDN , «Строка подключения ADO» , «Руководство программиста ADO 2.8», по состоянию на 10 сентября 2005 г.
- ^ MSDN , «Обзор командного объекта» , «Руководство программиста ADO 2.8», по состоянию на 10 сентября 2005 г.
- ^ MSDN , «Изучение данных» , «Руководство программиста ADO 2.8», по состоянию на 10 сентября 2005 г.
- ^ Полный список методов и свойств ADO, которые позволяют проверять данные в наборе записей, можно найти в документации Microsoft API.
- ^ MSDN , «Редактирование данных» , «Руководство программиста ADO 2.8», по состоянию на 10 сентября 2005 г.
- ^ MSDN , «Удаление записей с помощью метода удаления» , «Руководство программиста ADO 2.8», по состоянию на 10 сентября 2005 г.
- ^ MSDN , «Обновление и сохранение данных» , «Руководство программиста ADO 2.8», по состоянию на 12 сентября 2005 г.
- ^ MSDN , «Обработка транзакций» , «Руководство программиста ADO 2.8», по состоянию на 12 сентября 2005 г.
- ^ MSDN , «Объект записи» , «Справочник по API ADO 2.8», по состоянию на 12 сентября 2005 г.
- ^ MSDN , «Записи и потоки» , «Руководство программиста ADO 2.8», по состоянию на 12 сентября 2005 г.
- ^ MSDN , «Потоки и постоянство» , «Руководство программиста ADO 2.8», по состоянию на 12 сентября 2005 г.
- ^ MSDN , «Объект параметра» , «Справочник по API ADO 2.8», по состоянию на 12 сентября 2005 г.
- ^ MSDN , «Объект поля» , «Справочник по API ADO 2.8», по состоянию на 12 сентября 2005 г.
- ^ MSDN , «Объект свойства» «Руководство программиста ADO 2.8», по состоянию на 13 сентября 2005 г.
- ^ MSDN , «Обработка ошибок» , «Руководство программиста ADO 2.8», по состоянию на 18 сентября 2005 г.
- ^ MSDN , «Информация об ошибках, связанных с полем» , «Руководство программиста ADO 2.8», по состоянию на 18 сентября 2005 г.; & MSDN , «Информация об ошибках, связанных с набором записей» , «Руководство программиста ADO 2.8», по состоянию на 18 сентября 2005 г.
- ↑ Дуг Ротхаус и Майк Пиццо, «ADO.NET для программиста ADO» , MSDN , по состоянию на 22 сентября 2005 г.
- ^ Microsoft , Устаревшие компоненты (OLE DB) , получено 5 августа 2005 г.
- ^ Гамильтон, Билл (2008). Рецепты ADO.NET 3.5 . Серия кулинарных книг (2-е изд.). О'Рейли Медиа, Инк. с. 27. ISBN 9780596101404 . Проверено 9 октября 2012 г.
[...] использовать поставщика Oracle OLE DB (MSDAORA) для доступа к данным Oracle.
- ^ Microsoft , «Дорожная карта технологий доступа к данным», Устаревшие компоненты MDAC, Microsoft «Руководство программиста ADO», Приложение A: Поставщики, Поставщик Microsoft OLE DB для ODBC. Архивировано 5 октября 2001 г. на Wayback Machine , получено 30 июля 2005 г.
- ^ Microsoft , статья базы знаний MS 244661: ИНФОРМАЦИЯ: Ограничения драйвера Microsoft Oracle ODBC и поставщика OLEDB , последняя проверка 25 августа 2004 г., получено 4 августа 2005 г.
- ^ Microsoft , «Служба удаленных данных (RDS)» , получено 11 августа 2005 г.
- ^ Microsoft , «Дорожная карта технологий доступа к данным», «Устаревшие компоненты MDAC»
- ^ Кален Делани, «Внутри Microsoft SQL Server 2000», Microsoft Press , стр. 65.
- ^ Кристин Соломон, «Справочник разработчика Microsoft Office 97», Microsoft Press . стр. 195–200.
- ^ (на немецком языке) Кристиан Коллер, «ADO und MDAC Versionen» : MDAC 1.0 и 1.1 (OLE DB 1.0 и OLE DB 1.1), доступ 1 июля 2005 г.
- ^ Jump up to: а б с д ИНФОРМАЦИЯ: Что такое MDAC, DA SDK, ODBC, OLE DB, ADO, RDS и ADO/MD? , Microsoft, 14 марта 2005 г. , получено 1 июля 2005 г.
- ^ Jump up to: а б Коллер, Кристиан, «Версии ADO и MDAC» , MDAC 1.5 (на немецком языке) , получено 1 июля 2005 г.
- ^ Microsoft , Программа безопасности Microsoft: Часто задаваемые вопросы: Бюллетень по безопасности Microsoft (MS99-025) , по состоянию на 6 июля 2005 г.
- ^ Microsoft , PRB: Сообщения об ошибках обработчика RDS из-за настроек безопасности (последняя проверка 30 сентября 2003 г.), по состоянию на 6 июля 2005 г.; Программа безопасности Microsoft: Бюллетень безопасности Microsoft (MS98-004) : «Несанкционированный доступ к данным ODBC с помощью RDS и IIS» (последняя редакция: 17 июля 1998 г.), по состоянию на 6 июля 2005 г.; Уязвимость CVE CVE - 1999-1011 .
- ^ Кристиан Коллер, «Версии ADO и MDAC» : MDAC 2.0, по состоянию на 1 июля 2005 г.
- ^ (на немецком языке) Кристиан Коллер, «Версии ADO и MDAC» : MDAC 2.1, по состоянию на 1 июля 2005 г.
- ^ Microsoft , «Компоненты доступа к данным: исправление безопасности для Q329414»; Бюллетень Microsoft Security MS02-06 — первоначально статья базы знаний Microsoft Q329414) — (первоначально опубликовано 20 ноября 2002 г.), по состоянию на 6 июля 2005 г.
- ^ (на немецком языке) Кристиан Коллер, «Версии ADO и MDAC» : MDAC 2.5, по состоянию на 1 июля 2005 г.
- ^ Microsoft , статья базы знаний MS 320700, «Пул сеансов OLE DB вызывает 100-процентную загрузку ЦП (MDAC 2.5)» , по состоянию на 6 июля 2005 г.
- ^ Microsoft , статья базы знаний MS 842272 Манифест выпуска для MDAC 2.6 (2.60.6526.3) , по состоянию на 6 июля 2005 г.
- ^ Microsoft , статья базы знаний MS 271908 MDAC версии 2.6 и более поздних версий не содержат драйверы ODBC для Jet или Desktop , по состоянию на 6 июля 2005 г.
- ^ Microsoft , статья базы знаний MS 820754 MDAC 2.6 или более поздней версии не должна устанавливаться в кластерах SQL Server 7.0 , по состоянию на 6 июля 2005 г.
- ^ Veritas , идентификатор документа: 258144 VERITAS Backup Exec (tm) 9.0 для серверов Windows не следует устанавливать в кластере Microsoft SQL Server 7.0. Архивировано 5 января 2013 г. на archive.today.
- ^ «Манифест выпуска для обновления MDAC 2.7 (2.70.9001.0)» . Support.microsoft.com . Проверено 10 апреля 2019 г.
- ^ Microsoft , статья базы знаний MS 289573 PRB: Настройка DSN с помощью сетевых библиотек SQL Server.
- ^ Кеннеди, Рэндалл К. (21 ноября 2001 г.). «Это не ошибка, это особенность» . Инфомир . ИДГ . Архивировано из оригинала 10 марта 2007 года.
- ^ Microsoft , статья базы знаний MS 309398. Установка SQL Server 2000 или локальные подключения завершаются сбоем с сообщением об ошибке «Ошибка безопасности SSL: ConnectionOpen (SECDoClientHandshake())».
- ^ Microsoft , статья базы знаний MS 297232 ИСПРАВЛЕНИЕ: невозможно просмотреть кубы или модель интеллектуального анализа процессов после установки Analysis Services 2000 RTM.
- ^ Microsoft , статья базы знаний MS 311720 PRB: Откат MDAC может завершиться неудачно в Windows 95, Windows 98 и Windows Millennium Edition.
- ^ Microsoft , Бюллетень Microsoft по безопасности MS02-040. Непроверенный буфер в функции MDAC может привести к компрометации системы (Q326573) .
- ^ Microsoft , Бюллетень по безопасности Microsoft MS03-033. Непроверенный буфер в функции MDAC может привести к компрометации системы (823718)
- ^ Microsoft , Бюллетень Microsoft по безопасности MS04-003. Переполнение буфера в функции MDAC может позволить выполнение кода (832483)
- ^ Майкрософт . Статья базы знаний MS 818490: ИНФОРМАЦИЯ: файл Handunsf.reg был удален в настройке повторного распространения MDAC 2.8 по соображениям безопасности.
- ^ Майкрософт . Статья базы знаний MS 838405: ИСПРАВЛЕНИЕ: ошибка «Аргумент, переданный в службу формирования данных, недействителен» после применения MDAC 2.8.
- ^ Майкрософт . Статья базы знаний MS 818489, ИНФОРМАЦИЯ: Изменения администратора ODBC в MDAC 2.8 .
- ^ Брэд Роудс (запись в блоге), Конец распространяемого файла MDAC , 23 мая 2005 г., получено 11 августа 2005 г.; & Microsoft , статья базы знаний MS 892854: «Стратегия выпуска компонентов доступа к данным Microsoft» , последнее обновление 24 января 2005 г., получено 11 августа 2005 г.
- ^ Эйси Дж. Банч (26 апреля 2005 г.), «Представляем собственный клиент SQL» , MSDN . в блоге запись
- ^ MSDN , «Критические изменения в компонентах MDAC ADODB COM в пакете обновления 1 для Windows 7» , «Форум», по состоянию на 9 марта 2011 г.
- ^ KB 2517589 , «Приложение ADO, перекомпилированное на компьютере под управлением Windows 7 с пакетом обновления 1, не работает в операционных системах более низкого уровня» , «», по состоянию на 17 марта 2011 г.
- ^ KB 2640696 , «Приложение на основе ADO, скомпилированное в Windows 7 SP1 или в Windows Server 2008 R2 SP1, не работает в более ранних версиях Windows» , «», по состоянию на 20 апреля 2012 г.
- ^ Microsoft , «Часто задаваемые вопросы о Windows DAC/MDAC» . Доступ 12 декабря 2006 г.
- ^ Майкрософт . Статья базы знаний MS 301202 « Как проверить версию MDAC» , последнее обновление 18 января 2005 г., получено 29 сентября 2005 г.
- ^ Глава 11 «Изменения» , дополнительный материал к «Первому взгляду на SQL Server 2005 для разработчиков» Боба Бошемина, Нильса Берглунда и Дэна Салливана. Архивировано 24 марта 2006 г. в Wayback Machine.
Дальнейшее чтение
[ редактировать ]- «Справочник по API ADO» . MSDN . Майкрософт . Проверено 3 мая 2014 г.
- «Руководство программиста ADO» . MSDN . Майкрософт . Проверено 3 мая 2014 г.
- Делани, Кален (2000). Внутри Microsoft SQL Server 2000 (3-е изд.). Майкрософт Пресс . ISBN 9780735609983 .
- Ротхаус, Дуг; Майк, Пиццо (декабрь 2001 г.). «ADO.NET для ADO-программиста» . MSDN . Майкрософт . Проверено 3 мая 2014 г.
- Широлкар, Праш; Генри, Алисса; Пепитон, Стивен; Банч, Эйси Дж.; Шварц, Дэвид (январь 2013 г.). «Дорожная карта технологий доступа к данным» . MSDN . Майкрософт . Проверено 3 мая 2014 г.
- Соломон, Кристина (1997). Руководство разработчика Microsoft Office 97 . Майкрософт Пресс . ISBN 9781572316065 .