Программирование доступа к данным (библиотеки MFC/ATL)

С течением времени в Visual C++ появлялись различные способы работы с базами данных. В 2011 году Корпорация Майкрософт объявила о том, что она соответствует open Database Connectivity (ODBC) в качестве предпочтительной технологии для доступа к продуктам SQL Server из машинного кода. ODBC является отраслевым стандартом, и его использование гарантирует максимально простой перенос кода под различные платформы и источники данных. ODBC поддерживается большинством продуктов SQL для работы с базами данных и многими продуктами NoSQL. Его можно использовать напрямую путем вызова низкоуровневых API-интерфейсов ODBC, либо можно использовать классы-оболочки MFC или сторонние библиотеки-оболочки C++.

OLE DB — это низкоуровневый высокопроизводительный API-интерфейс на основе спецификации COM, который поддерживается только в Windows. Используйте OLE DB, если ваша программа осуществляет доступ к связанным серверам. Библиотека ATL содержит шаблоны для OLE DB, упрощающие создание настраиваемых поставщиков и объектов-получателей OLE DB. Последний поставщик Microsoft SQL Server можно найти в документации по драйверу OLE DB для SQL Server.

Перенос приложений для обработки данных

Если устаревшее приложение использует OLE DB или интерфейс ADO более высокого уровня для подключения к SQL Server, следует рассмотреть возможность миграции на последний драйвер OLE DB для SQL Server, чтобы воспользоваться новейшими функциями SQL Server . Другой вариант, если вам не требуется переносимость кроссплатформенных или последних функций SQL Server, можно использовать поставщик Microsoft OLE DB для ODBC (MSDASQL). MSDASQL позволяет приложениям, созданным на базе OLE DB и ADO (где внутри тоже используется OLEDB), получать доступ к источникам данных с помощью драйвера ODBC. Так как MSDASQL является еще одним уровнем преобразования, он может повлиять на работу баз данных. Вам нужно будет проанализировать, насколько сильно будет затронуто ваше приложение. MSDASQL поставляется с операционной системой Windows. Windows Server 2008 и Windows Vista с пакетом обновления 1 (SP1) являются первыми выпусками Windows, включающими 64-разрядную версию технологии.

Если приложение C++ подключается к SQL Server или База данных SQL Azure через ODBC, он должен использовать последний драйвер ODBC.

Если вы работаете с C++/CLI, вы можете продолжать использовать ADO.NET как и раньше. Подробнее см. в разделах Доступ к данным с помощью ADO.NET (C++/CLI) и Доступ к данным в Visual Studio.

  • Помимо классов-оболочек ODBC, в MFC содержатся классы-оболочки DAO для подключения к базам данных Access. Но технология DAO устарела. Любой код на основе CDaoDatabase или CDaoRecordset требует обновления.

Дополнительные сведения об истории технологий доступа к данным в Microsoft Windows см. на странице Microsoft Data Access Components в Википедии.

См. также

Доступ к данным
Microsoft Open Database Connectivity (ODBC)