Ole db driver for sql server это
Я настраивал системный DSN (64-разрядный) для своей базы данных на SQL Server 2016 с 64-разрядной версией Windows 10 Pro. Хотя меня попросили выбрать драйвер для настройки источника данных, есть следующие варианты:
- Драйвер ODBC 13 для SQL Server
- SQL Server
- Собственный клиент SQL Server 11.0
- Собственный клиент SQL Server RDA 11.0
Казалось, я могу настроить источник данных со всеми этими драйверами. Тогда какой из них выбрать по скорости и эффективности? В чем разница между ними?
4 ответа
Драйвер ODBC для SQL Server
ODBC - это основной собственный API доступа к данным для приложений, написанных на C, C ++, PHP, Python и других, для подключения к SQL Server.
Он широко используется в сценариях интеграции данных.
Кроме того, предпочтительно, если вы разрабатываете приложение для Windows и развертываете его в Linux.
SQL Server
Полное имя драйвера SQL Server - Драйвер ODBC SQL Server. Это старый драйвер, начиная с sql 2000. Вы можете использовать его для подключения к SQL Server 2016, но вы не сможете получить доступ к новым функциям и функциям SQL Server 2016.
Собственный клиент SQL Server
Собственный клиент SQL Server содержит как поставщик SQL OLE DB, так и драйвер SQL ODBC для поддержки встроенного подключения к SQL Server и всех функций sql server 2016. Это лучший вариант в среде Windows.
RDA для собственного клиента SQL Server
Удаленный доступ к данным (RDA) в Microsoft SQL Server Compact 3.5 позволяет приложению получать доступ к данным из удаленной таблицы базы данных SQL Server.
Он также может хранить, читать и обновлять эти данные в SQL Server Compact 3.5, а затем обновлять исходную таблицу SQL Server.
В следующем выпуске RDA будет удалено, поэтому не используйте его.
Поэтому выбирайте драйвер sql на основе вышеуказанных критериев.
Похоже, что в последней версии для собственного клиента SQL Server собственный клиент Microsoft® SQL Server® 2012 также назывался собственным клиентом SQL Server 11.0. Не поддерживает новую функцию в SQL Server 2014 и новее.
Обратите внимание, что SNAC 11 не поддерживает функции, выпущенные с SQL Server 2014 и SQL Server 2016, которые не были доступны как часть SQL Server 2012, такие как разрешение прозрачного сетевого IP-адреса, постоянное шифрование, проверка подлинности Azure AD, массовое копирование и параметры значений таблицы.
Вы должны использовать Microsoft® ODBC Driver 11 или 13 для SQL Server, чтобы пользоваться новой функцией в SQL Server 2014 или более поздней версии.
Как упоминалось ранее в этом посте, более поздние версии драйвера ODBC (13 и более поздние) предоставляют вам доступ к более продвинутым функциям, доступным в SQL Server 2014, 2016 и т. Д.
В этой ссылке говорится, что вам необходимо использовать ODBC 13 для SQL Server 2012: Версии драйверов SQL Server
Однако, если вы посмотрите на загрузку для ODBC версии 17, она укажет на поддержку SQL Server 2012 (и более старых версий SQL Server).
Так что, возможно, драйвер ODBC версии 17 (по крайней мере) обратно совместим со старыми версиями SQL Server.
Надеюсь это поможет!
Драйвер Microsoft ODBC для SQL Server (MSODBCSQL)
Собственный клиент SQL Server (SQLNCLI)
Представлено в SQL Server 2005 и поставляется с SQL Server (также устанавливается через sqlncli.msi из пакетов функций SQL Server). Добавлены функции по сравнению с SQL Server: несколько активных наборов результатов (MARS), определяемые пользователем типы данных (UDT), уведомления о запросах, изоляция моментальных снимков и поддержка типов данных XML.
RDA для собственного клиента SQL Server
Удаленный доступ к данным (RDA) - это функция SQL Server Compact, которая «позволяет приложению получать доступ к данным из удаленной таблицы базы данных SQL Server». Я не могу найти много документации, но похоже, что этот драйвер был предназначен для поддержки сценариев репликации с помощью Compact Edition.
SQL Server (SQLSRV32)
Включено в компоненты доступа к данным Microsoft (MDAC) (теперь называемые компонентами доступа к данным Windows (WDAC)). Этот драйвер доступен по умолчанию в Windows (начиная с 98 и NT 4.0).
Драйвер OLE DB для SQL Server — это изолированный прикладной программный интерфейс (API) для доступа к данным, используемый в OLE DB, который появился в SQL Server 2005 (9.x). Драйвер OLE DB для SQL Server предоставляется в формате одной библиотеки динамической компоновки (DLL). Также он предоставляет новые расширенные функциональные возможности, поставляемые компонентами доступа к данным Windows (выделенное административное соединение Windows, ранее — компоненты доступа к данным компонентов MDAC). Драйвер OLE DB для SQL Server может применяться для создания новых или усовершенствования существующих приложений, которым требуется доступ к новым функциям SQL Server 2005 (9.x), таким как множественный активный результирующий набор (MARS), пользовательские типы, уведомления о запросах, изоляция моментальных снимков и поддержка типа данных XML.
Список различий между драйверами OLE DB для SQL Server и Windows DAC, а также сведения о проблемах, которые следует учесть перед переносом приложения Windows DAC на драйвер OLE DB для SQL Server, можно найти в статье Обновление приложения с переходом от MDAC на драйвер OLE DB для SQL Server.
Предыдущие поставщики Microsoft OLE DB для SQL Server (SQLOLEDB) и собственный клиент OLE DB для SQL Server (SQLNCLI) объявляются нерекомендуемыми для новых разработок.
Драйвер OLE DB для SQL Server может использоваться совместно с основными службами OLE DB, поставляемыми с компонентами доступа к данным Windows DAC, но это не является обязательным требованием. Выбор того, использовать или нет основные службы, зависит от требований отдельного приложения (например, требуется ли пул соединений).
Приложения ADO могут использовать драйвер OLE DB для SQL Server, но мы рекомендуем использовать для ADO ключевое слово строки подключения DataTypeCompatibility (или соответствующее свойство DataSource). При использовании драйвера OLE DB для SQL Server приложения ADO могут использовать новые функции, добавленные в SQL Server 2005 (9.x) и доступные в драйвере OLE DB для SQL Server через ключевые слова строки подключения, свойства OLE DB или Transact-SQL. Дополнительные сведения об использовании этих функций с ADO см. в статье Использование объектов ADO с драйвером OLE DB для SQL Server.
Драйвер OLE DB для SQL Server призван обеспечить упрощенный собственный доступ к данным SQL Server через OLE DB. Он позволяет разрабатывать и развивать новые функции доступа к данным без изменения текущих компонентов выделенного административного соединения Windows, которые теперь являются частью платформы Microsoft Windows.
OLE DB Driver for SQL Server использует компоненты доступа к данным Windows DAC, но явно не зависит от их конкретных версий. Драйвер OLE DB для SQL Server можно использовать с любой версией выделенного административного соединения Windows, которая устанавливается операционной системой, поддерживаемой драйвером OLE DB для SQL Server.
Разные поколения драйверов OLE DB
Существует три поколения поставщиков Microsoft OLE DB для SQL Server.
1. Поставщик Microsoft OLE DB для SQL Server (SQLOLEDB)
Поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) по-прежнему поставляется в составе компонентов доступа к данным Windows. Он больше не поддерживается и мы не рекомендуем использовать этот драйвер для разработки новых приложений.
2. SQL Server Native Client (SNAC)
Начиная с версии SQL Server 2005 (9.x), собственный клиент SQL Server (SNAC) включает интерфейс поставщика OLE DB (SQLNCLI) и поставщик OLE DB, который поставляется с SQL Server 2005 (9.x) через SQL Server 2012 (11.x).
С 2011 года он считается устаревшими и мы не рекомендуем использовать этот драйвер для разработки новых приложений. Дополнительные сведения о жизненном цикле SNAC и доступных для скачивания файлах см. в описании жизненного цикла SNAC.
3. Драйвер Microsoft OLE DB для SQL Server (MSOLEDBSQL)
Поддержка OLE DB возобновлена с момента выпуска поставщика в 2018 г.
Новый поставщик OLE DB называется драйвером Microsoft OLE DB для SQL Server (MSOLEDBSQL). Этот новый поставщик будет далее дополняться всеми новыми функциями сервера.
Чтобы использовать новый драйвер Майкрософт OLE DB для SQL Server в существующих приложениях, следует запланировать преобразование строк подключения из форматов SQLOLEDB и SQLNCLI в MSOLEDBSQL.
В этом разделе
OLE DB Driver for SQL Server features (Функции драйвера OLE DB для SQL Server)
Здесь описаны возможности, которые поддерживаются драйвером OLE DB для SQL Server.
Создание приложений с помощью драйвера OLE DB для SQL Server
Представлены общие сведения о разработке с помощью драйвера OLE DB для SQL Server, включая отличия от компонентов доступа к данным Windows DAC, используемые компоненты и способ использования совместно с ADO.
В этом разделе также обсуждается установка и развертывание драйвера OLE DB для SQL Server, в том числе способ распространения библиотеки драйвера OLE DB для SQL Server.
Требования к системе для драйвера OLE DB для SQL Server
Здесь описаны системные ресурсы, которые нужны для использования драйвера OLE DB для SQL Server.
OLE DB Driver for SQL Server programming (Программирование драйвера OLE DB для SQL Server)
Предоставляются сведения об использовании драйвера OLE DB для SQL Server.
Finding more OLE DB Driver for SQL Server information (Дополнительные сведения о драйвере OLE DB для SQL Server)
Предоставляются дополнительные ресурсы со сведениями о драйвере OLE DB для SQL Server, в том числе ссылки на внешние ресурсы и дополнительные сведения.
The OLE DB Driver for SQL Server is a stand-alone data access application programming interface (API), used for OLE DB, that was introduced in SQL Server 2005 (9.x). OLE DB Driver for SQL Server delivers the SQL OLE DB driver in one dynamic-link library (DLL). It also provides new functionality above and beyond that supplied by the Windows Data Access Components (Windows DAC, formerly Microsoft Data Access Components, or MDAC). The OLE DB Driver for SQL Server can be used to create new applications or enhance existing applications that need to take advantage of features introduced in SQL Server 2005 (9.x), such as multiple active result sets (MARS), user-defined data types (UDT), query notifications, snapshot isolation, and XML data type support.
For a list of the differences between OLE DB Driver for SQL Server and Windows DAC, plus information about issues to consider before updating a Windows DAC application to OLE DB Driver for SQL Server, see Updating an Application to OLE DB Driver for SQL Server from MDAC.
The previous Microsoft OLE DB Provider for SQL Server (SQLOLEDB) and SQL Server Native Client OLE DB provider (SQLNCLI) remains deprecated and it is not recommended to use either for new development work.
The OLE DB Driver for SQL Server can be used with OLE DB Core Services supplied with Windows DAC, but this use isn't a requirement; the choice to use Core Services or not depends on the requirements of the individual application (for example, if connection pooling is required).
ActiveX Data Object (ADO) applications may use the OLE DB Driver for SQL Server, but it's recommended to use ADO with the DataTypeCompatibility connection string keyword (or its corresponding DataSource property). OLE DB Driver for SQL Server allows ADO applications to exploit those new features introduced in SQL Server 2005 (9.x) that are available with OLE DB Driver for SQL Server via connection string keywords or OLE DB properties or Transact-SQL. For more information about the use of these features with ADO, see Using ADO with OLE DB Driver for SQL Server.
OLE DB Driver for SQL Server was designed to provide a simplified method of gaining native data access to SQL Server using OLE DB. It provides a way to innovate and evolve new data access features without changing the current Windows DAC components, which are now part of the Microsoft Windows platform.
While OLE DB Driver for SQL Server uses components in Windows DAC, it isn't explicitly dependent on a particular version of Windows DAC. You can use OLE DB Driver for SQL Server with the version of Windows DAC that is installed with any operating system supported by OLE DB Driver for SQL Server.
Different generations of OLE DB Drivers
There are three distinct generations of Microsoft OLE DB providers for SQL Server.
1. Microsoft OLE DB Provider for SQL Server (SQLOLEDB)
The Microsoft OLE DB Provider for SQL Server (SQLOLEDB) still ships as part of Windows Data Access Components. It isn't maintained anymore and it isn't recommended to use this driver for new development.
2. SQL Server Native Client (SNAC)
SQL Server Native Client (SNAC) was available starting with SQL Server 2005 (9.x). SNAC includes an OLE DB provider interface (SQLNCLI) and is the OLE DB provider that shipped with SQL Server 2005 (9.x) through SQL Server 2012 (11.x).
It was announced as deprecated in 2011 and it isn't recommended to use this driver for new development. For more information about the SNAC lifecycle and available downloads, see SNAC lifecycle explained.
3. Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL)
OLE DB was undeprecated and released in 2018.
The new OLE DB provider is called the Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL). The new provider will be updated with the most recent server features going forward.
To use the new Microsoft OLE DB Driver for SQL Server in existing applications, you should plan to convert your connection strings from SQLOLEDB or SQLNCLI, to MSOLEDBSQL19 or MSOLEDBSQL.
In this section
OLE DB Driver for SQL Server features
Describes the features supported by OLE DB Driver for SQL Server.
Building applications with OLE DB Driver for SQL Server
Provides an overview of OLE DB Driver for SQL Server development, including how it differs from Windows DAC, the components that it uses, and how ADO can be used with it.
This section also discusses OLE DB Driver for SQL Server installation and deployment, including how to redistribute the OLE DB Driver for SQL Server library.
System requirements for OLE DB Driver for SQL Server
Discusses the system resources needed to use OLE DB Driver for SQL Server.
OLE DB Driver for SQL Server programming
Provides information about using the OLE DB Driver for SQL Server.
Finding more OLE DB Driver for SQL Server information
Provides more resources about OLE DB Driver for SQL Server, including links to external resources and getting further assistance.
OLE DB и ODBC представляют собой интерфейсы приложений, которые обеспечивают доступ к целому ряду источников данных.
Разработчики Microsoft спроектировали ODBC для доступа к данным SQL, а OLE DB — для доступа к любым данным в среде СОМ.
Одни пользователи до сих пор не понимают, что же послужило причиной внедрения OLE DB, другие переоценивают роль OLE DB в области корпоративных и ориентированных на Internet разработок. В данной статье мне хотелось бы не только объяснить, зачем компании Microsoft понадобилось вводить OLE DB, но и оценить ту роль, которую это средство играет сегодня и, что гораздо важнее, будет играть завтра. Думаю, моя статья заинтересует в первую очередь опытных разработчиков, использующих ODBC и желающих иметь представление об OLE DB.
Чем же плох ODBC?
Внедрение OLE DB не означает отказ от ODBC. В обозримом будущем Microsoft планирует поддерживать ODBC так же, как это делают другие производители СУБД и инструментальных средств. Так чем же не устраивает разработчиков ODBC? Для доступа к данным он вполне адекватен. Опыт подтверждает, что, если ODBC удовлетворяет потребности вашего бизнеса, об OLE DB и связанных с ним технологиях пока можно забыть.
Однако ODBC превратился в развитую, полностью выразившую себя технологию, и Microsoft не будет далее его совершенствовать. ODBC подобен поезду, следующему в депо, до которого осталось всего несколько остановок. На любой остановке можно пересесть на другой поезд, OLE DB, и каждый сам решает, когда это лучше сделать.
Таким образом, ODBC вполне справляется со своими обязанностями. Хорошо известна его производительность, гибкость и архитектура. Существует немало различных инструментальных средств и рабочих сред, построенных на ODBC (например, RDO). Чтобы понять, как скоро предстоит задуматься о переходе к OLE DB, проанализируйте, в какой степени возможности ODBC соответствуют тем усовершенствованиям, которые планируется внедрить в вашей информационной системе. При этом нужно помнить о том, что в течение ближайших пяти лет ODBC будет предоставлять те же самые возможности, что и сегодня. ODBC будет по-прежнему обеспечивать доступ к данным SQL, которые не интегрированы с другими, нереляционными типами данных, такими, как файлы языка XML, документы Microsoft Office или файлы электронной почты. Если же подобного рода файлы являются частью информационных ресурсов компании, стоит рассмотреть вариант OLE DB.
Что нового предлагает OLE DB
OLE DB представляет собой следующую ступень развития ODBC. Эти средства образуют относительно независимый программный слой, использующий один и тот же набор основных интерфейсов прикладных программ (API) для доступа к разнообразным базам данных. Их работа обеспечивается невидимыми для пользователя программными модулями, которые учитывают специфические особенности каждой СУБД и выступают в качестве драйверов для верхних программных слоев. В OLE DB полностью реализован принцип открытости связей между базами данных. Наибольшие различия проявляются в использовании некоторых основных терминов и в окружающем контексте. В Таблице 1 содержатся трактовки часто употребляемых терминов применительно к ODBC и OLE DB.
Таблица 1. Интерпретация основных терминов в ODBC и OLE DB.
С точки зрения функциональности OLE DB обеспечивает доступ ко всем типам информации: реляционным и нереляционным, плоским и иерархическим, постоянным и переменным, ориентированным на SQL или на любой другой язык запросов. Для облегчения доступа к информации источники данных OLE DB представляются компонентами, базирующимися на СОМ, с четко определенным программным интерфейсом. Эти компоненты, называемые поставщиками данных, взаимодействуют с хранилищем информации. При соединении с поставщиком данных клиентское приложение всегда получает в качестве ответа набор записей независимо от того, к чему обращается поставщик данных — к таблице реляционной СУБД или к листингу каталога. Поставщик отвечает за извлечение данных с физического носителя и их форматирование. Данные могут храниться в одном и том же постоянном месте (в файлах на диске или в базе данных), в определенной области памяти или даже на разных машинах и разных платформах. Они могут быть реляционными и иерархическими, структурированными и плоскими, записанными в стандартном и в частном формате, доступными и недоступными для ODBC.
Возвращаемый OLE DB результирующий набор (называемый набором строк или записей) представляет собой не просто поток байтов, записываемых в память клиентского приложения, как в случае ODBC. Этот поток данных содержится в независимом модуле СОМ с отдельным программным интерфейсом. Такой модуль предлагает различные способы манипулирования набором записей — сортировку, фильтрацию, прокручивание текста. При этом он допускает возможность одновременной работы с данными многих пользователей. Работать с набором строк можно даже при отключении от первоначального источника данных, что делает тем самым этот новый мощный тип данных весьма эффективным.
Преграды на пути OLE DB
Так ли уж хорош OLE DB? Для ответа на этот вопрос следует тщательно изучить два аспекта. С одной стороны, OLE DB нельзя назвать вполне зрелой технологией. С другой — Microsoft позиционирует его как базовый сервис доступа к данным для будущих платформ Windows. Это означает, что в Microsoft планируют существенно доработать OLE DB. Рассмотрим эти два аспекта более подробно, чтобы попробовать предсказать, какое влияние они окажут на пользователей.
Microsoft предлагает OLE DB в качестве основной технологии доступа к данным для Visual Studio 97. Версия OLE DB 2.5, которую предполагается выпустить вместе с Windows 2000, дебютировала в TechEd 99. Множество изменений, внесенных со времени выхода первой версии, казалось бы, говорят о нестабильности технологии. Однако в начале 1990-х такое же впечатление производила и технология ODBC. Тем не менее уже начиная с версии 3.0 ODBC работает прекрасно, и сегодня разработчики расценивают ее как очень стабильную технологию. Но это потребовало времени. Поскольку данные представляют собой «стратегическое горючее» для большинства компаний, необходимо особенно тщательно прорабатывать любые технологии, влияющие на доступ к данным.
проста, эффективна и легко кодируется.
OLE DB состоит из двух частей: внешнего интерфейса и внутреннего ядра. Ядро, работающее в фоновом режиме, обрабатывает запросы и производит поиск данных. Часть OLE DB, отвечающая за внешний интерфейс, содержит программные средства, необходимые любому поставщику для взаимодействия с клиентами. Только Microsoft может установить стандарт на развитие OLE DB с точки зрения функциональности и технологии. Для этой цели задается спецификация интерфейса СОМ, который поставщик должен поддерживать. OLE DB 2.5 демонстрирует значительный прогресс по сравнению с более ранними версиями: в ней сняты некоторые ограничения проектирования и добавлены новые возможности. К примеру, OLE DB 2.5 позволяет возвращать нерегулярные, не табулированные наборы записей. OLE DB можно использовать для показа полуструктурированных и иерархических данных, таких, как потоки XML, документы Word и Excel, содержимое директории файловой системы. Кроме того, в новой версии уменьшается объем информации о поставщике, которую необходимо знать потребителю. Вместо спецификации сложных командных строк и строк соединения связаться с нужным набором записей можно посредством синтаксиса URL. Это свойство, называемое прямой URL-связью, позволяет написать такую строку соединения:
Поскольку разработчики Microsoft рассматривают OLE DB в качестве основной технологии доступа к данным в среде Windows, пользователи в обозримом будущем получат всю необходимую поддержку для применения OLE DB. Поставщики важнейшего продукта Microsoft в классе серверов баз данных, SQL Server, незамедлительно отразят в нем все нововведения OLE DB. Воспримут ли эти новшества производители других баз данных? На мой взгляд, недостаток OLE DB в том, что его единственной надежной опорой являются производители SQL Server версий 6.5 и 7.0. Известно, что изготовители OLE DB для Jet и Oracle выпустили функционально неполные продукты, в которых обнаружены ошибки, так что разработчикам они вряд ли будут полезны. Версия OLE DB для Oracle производства корпорации Microsoft тоже не поражает воображения, но тем не менее представляется наиболее приемлемой. Версия OLE DB 2.1 обеспечивает доступ к данным из множественных программных сред, но это пока еще проблематично. Для того чтобы технология OLE DB превратилась в стандарт, всем производителям баз данных и, возможно, независимым компаниям необходимо выпустить полные версии поставщиков данных для различных СУБД. Не исключено, что потребуется совместными усилиями совершенствовать эти компоненты.
В общем, OLE DB еще предстоит завоевать признание и получить репутацию надежного средства, т. е. повторить путь, проделанный за последние годы ODBC. Но OLE DB обладает достаточным потенциалом для того, чтобы превзойти ODBC по разнообразию поддерживаемых источников данных, гибкости и удобству программных интерфейсов. Более того, центральная роль OLE DB в архитектуре работающих под управлением Windows распределенных приложений для Internet, DNA (Distributed InterNet Applications), а также в архитектуре DNS делает эту технологию реальным кандидатом на место ODBC. По всей вероятности, OLE DB станет важным компонентом при планировании будущих стратегий доступа к данным. Но слепо применять ее не следует.
Когда стоит выбрать OLE DB
Если принимать решение относительно OLE DB предстоит уже сегодня, то на какие факторы следует обратить внимание? Разработчики Microsoft спроектировали OLE DB с учетом требований производительности, но с точки зрения архитектуры вызов OLE DB пересекает больше программных слоев, чем запрос SQL, запущенный непосредственно из кода через интерфейс API в ODBC. Поэтому при использовании ODBC процесс происходит немного быстрее. Чтобы компенсировать этот недостаток, разработчики предусмотрели следующую возможность: OLE DB позволяет агрегировать и интегрировать структурно различные типы данных и использовать их в Web-приложениях.
Нужно помнить о том, что перейти к OLE DB не так-то просто. Это предостережение актуально даже для тех пользователей, которые уже применяют объектную модель: RDO, или Data Access Object (DAO), или даже ADO версии более ранней, чем 2.х. Особенно сложным может быть переход в случае использования СУБД, отличной от SQL Server. Расходы при этом окупятся только тогда, когда начнется реальная эксплуатация преимуществ интеграции с приложениями и системными услугами, которые предоставляет OLE DB. Если пользователи не знают, как реализовать достоинства гетерогенных запросов, не задействуют хранилища данных и не планируют интегрировать нереляционные типы данных (документы, электронные таблицы, электронную почту), они рискуют потерять производительность! (Или не обнаружить конкретных улучшений после обновления системы.)
Обычно я советую своим клиентам переходить к OLE DB только тогда, когда это обусловлено насущными потребностями бизнеса (как описано выше). То же рекомендуется и при создании новых систем, так как в процессе проектирования можно сразу заложить в них все возможности, предоставляемые OLE DB. Гибкость, интеграция и однородность — важные качества OLE DB. Если они необходимы для бизнеса компании, то переход к OLE DB может стать экономически эффективным.
У OLE DB есть сильные и слабые стороны; эта технология не возникла по мановению волшебной палочки. Она проходит стадию совершенствования, чтобы со временем превратиться в признанный стандарт. Познакомиться с ней стоит сегодня, а применять — только тогда, когда вы будете готовы извлечь из этого конкретную пользу.
ОБ АВТОРЕ
Дино Эспозито специализируется на разработках сценариев для среды СОМ. Является автором справочника для программистов по написанию сценариев Windows Scripting Host Programmer?s Reference (Wrox Press); работает в Риме преподавателем и консультантом.
. Вы должны использовать CommandText свойство, а не свойство SQL , который теперь существует главным образом для совместимость с более ранними версиями Корпорация Майкрософт Excel. Если вы используете оба свойства, свойства commandtext объекта значение имеет приоритет.
на источники OLE DB, в свойство commandtype свойство описывает значение Свойство CommandText.
на источники ODBC, CommandText функции свойств ровно как и Свойство SQL и установка свойства вызывает обновление данных.
Я очень ценю ваши короткие ответы.
(непосредственно со страницы 7 этой книги)
- ODBC предоставляет доступ только к реляционным базам данных
- OLE DB предоставляет следующие возможности
- доступ к данным независимо от его формата или местоположение
таким образом, кажется, что OLE DB взаимодействует с источниками данных на основе SQL через уровень драйвера ODBC.
ODBC: - только для реляционных баз данных (Sql Server, Oracle и т. д.)
OLE DB:-для реляционных и нереляционных баз данных. (Oracle, Sql-Server, Excel, raw-файлы и т. д.)
вот мое понимание (не авторитетное):
в какой-то момент различные поставщики datasouce (например, Oracle и т. д.), желая быть совместимыми с потребителями данных Microsoft, разработали поставщики OLEDB для своих продуктов, но по большей части OLEDB остается стандартом только для Microsoft. Теперь, большинство!--3-->Microsoft источники данных позволяют и ODBC и oledb доступ, главным образом для совместимости с устаревшими потребителями данных ODBC. Кроме того, существует поставщик OLEDB (оболочка) для ODBC, который позволяет использовать OLEDB для доступа к источникам данных ODBC, если это необходимо.
с точки зрения особенностей OLEDB существенно богаче, чем ODBC, но страдает от синдрома "одно кольцо к правилу" (чрезмерно общий, чрезмерно сложный, не самоуверенный).
в не-Microsoft world ODBC на основе поставщиков данных и клиентов широко используются и никуда не денутся.
на очень базовом уровне это просто разные API для разных источников данных (т. е. баз данных). OLE DB новее и, возможно, лучше.
вы можете прочитать больше на обоих в Википедии:
т. е. вы можете подключиться к той же базе данных с помощью драйвера ODBC или драйвера OLE DB. Разница в поведении базы данных в этих случаях заключается в том, на что ссылается ваша книга.
оба являются поставщиками данных (API, который ваш код будет использовать для разговора с источником данных). Oledb, который был введен в 1998 году, должен был заменить ODBC (введенный в 1992 году)
ODBC и OLE DB-две конкурирующие технологии доступа к данным. В частности, что касается SQL Server, Microsoft продвигала их обоих в качестве предпочтительного будущего направления - хотя и в разное время.
ODBC-это отраслевой стандартный интерфейс для доступа к табличным данным. Он был разработан главным образом для баз данных и представляет данные в коллекциях записей, каждая из которых сгруппирована в коллекцию полей. Каждое поле имеет свой тип данных подходит для типа данных, которые он содержит. Каждый поставщик базы данных (Microsoft, Oracle, Postgres. ) предоставляет драйвер ODBC для своей базы данных.
существуют также драйверы ODBC для объектов, которые, хотя и не являются таблицами базы данных, достаточно похожи, что доступ к данным таким же образом полезен. Примеры таблиц, CSV файлов и столбчатого отчета.
хотя все базы данных имеют драйверы ODBC, не все они имеют драйверы OLE DB. Однако между OLE и ODBC есть интерфейс, который можно использовать, если вы хотите получить к ним доступ в OLE DB-like. Этот интерфейс называется MSDASQL (Поставщик Microsoft OLE DB для ODBC).
поскольку SQL Server (1) сделан Microsoft и (2)на платформа базы данных Майкрософт, и ODBC и OLE DB естественная пригонка для ее.
ODBC для
поскольку все другие платформы баз данных имели интерфейсы ODBC, Microsoft, очевидно, должна была предоставить один для SQL Server. В дополнение к этому DAO, оригинальная технология по умолчанию в Microsoft Access, использует ODBC как стандартный способ общения со всеми внешними источниками данных. Это сделало интерфейс ODBC sine qua non. Драйвер ODBC версии 6 для SQL Server, выпущенный с SQL Server 2000, все еще существует. Были выпущены обновленные версии для обработки новых типов данных, технологий подключения, шифрования, HA/DR и т. д. которые появились с последующими релизами. По состоянию на 09/07/2018 самый последний выпуск-v13.1 "ODBC Driver for SQL Server", выпущенный на 03.03.2018.
OLE DB
это собственная технология Microsoft, которую они активно продвигали примерно с 2002 по 2005 год вместе с сопровождающим ее слоем ADO. Они, очевидно, надеялись, что это станет предпочтительной технологией доступа к данным. (Они даже сделали ADO методом по умолчанию для доступа к данным в Access 2002/2003.) Однако в конце концов стало очевидно, что этого не произойдет по ряду причин, таких как:
по этим причинам и другие, на самом деле, Microsoft устаревшая OLE DB как технология доступа к данным для выпусков SQL Server после v11 (SQL Server 2012). За пару лет до этого они производили и обновляли собственный клиент SQL Server, который поддерживал технологии ODBC и OLE DB. Однако в конце 2012 года они объявили, что будут согласовываться с ODBC для собственного доступа к реляционным данным в SQL Server, и призвали всех остальных сделать то же самое. Они далее заявили, что выпуски SQL Server после v11 / SQL Server 2012 будут активно не поддержка OLE DB!
в октябре 2017 года Microsoft смягчилась и официально не устаревший OLE DB. Они объявили о скором прибытии нового драйвера (MSOLEDBSQL), который будет иметь существующий набор функций собственного клиента 11, а также представит отказоустойчивость нескольких подсетей и поддержку TLS 1.2. Водитель был выпущен в марте 2018 года.
Я не уверен во всех деталях, но я понимаю, что OLE DB и ODBC-это два API, которые доступны для подключения к различным типам баз данных без необходимости иметь дело со всеми деталями реализации каждого. Согласно статья Википедии о OLE DB, OLE DB является преемником Microsoft ODBC и предоставляет некоторые функции, которые вы не можете сделать с ODBC, такие как доступ к электронным таблицам в качестве источников базы данных.
на веб-сайте Microsoft показано, что собственный поставщик OLEDB применяется к SQL server напрямую, а другой поставщик OLEDB называется поставщиком OLEDB для ODBC для доступа к другой базе данных, такой как Sysbase, DB2 и т. д. Существуют различные типы компонентов под поставщиком OLEDB. См.распределенные запросы на MSDN дополнительные.
ODBC работает только для реляционных баз данных, он не может работать с нереляционными базами данных, такими как файлы Ms Excel. Где Олебд может все.
• Октябрь, 2018: Microsoft undeprecates OLE DB (объявление о новом выпуске драйвера OLE DB для SQL Server)
Читайте также: