Visual Studio Data Tools для C++
Нативный C++ часто обеспечивает максимальную производительность при обращении к источникам данных. Однако для приложений C++ в Visual Studio доступно не так много средств для работы с данными, как для приложений .NET. Например, окно Источники данных не позволяет перетаскивать источники данных в область конструктора C++ . Если вам нужен объектно-реляционный слой, вам придется написать его самостоятельно или использовать сторонний продукт. Это относится и к функции привязки данных, хотя приложения, использующие библиотеку классов Microsoft Foundation, могут использовать некоторые классы баз данных, а также документы и представления, для хранения данных в памяти и их отображения для пользователя. Дополнительные сведения см. в статье Доступ к данным в Visual C++.
Для подключения к базам данных SQL нативные приложения C++ могут использовать драйверы ODBC и OLE DB и поставщик ADO, который входит в Windows. Они могут подключаться к любой базе данных, поддерживающей эти интерфейсы. Драйвер ODBC является стандартным. OLE DB предоставляется для обеспечения обратной совместимости. Дополнительные сведения об этих технологиях см. в статье Компоненты Windows для доступа к данным.
Чтобы воспользоваться преимуществами пользовательских функций в SQL Server 2005 и более поздних версий, используйте собственный клиент SQL Server. Собственный клиент объединяет драйвер SQL ODBC и поставщика OLE DB SQL Server в одну собственную DLL-библиотеку. Это обеспечивает поддержку приложений, использующих API-интерфейсы в собственном коде (ODBC, OLE DB и ADO) для подключения к Microsoft SQL Server. Собственный клиент SQL Server устанавливается вместе с SQL Server Data Tools. Руководство по программированию приведено здесь: программирование собственного клиента SQL Server.
Подключение к localDB через ODBC и собственный клиент SQL из приложения C++
Установите SQL Server Data Tools.
Если вам нужен пример базы данных SQL для подключения, скачайте базу данных Northwind и распакуйте ее в новое расположение.
С помощью SQL Server Management Studio подключите распакованный файл Northwind. mdf к localDB. Когда запустится SQL Server Management Studio подключитесь к (localdb)\MSSQLLocalDB.
Затем щелкните правой кнопкой мыши узел localDB на панели слева и выберите Подключить.
Скачайте пример SDK ODBC Windows и распакуйте его в новое расположение. В этом примере показаны основные команды ODBC, которые используются для подключения к базе данных и выполнения запросов и команд. Дополнительные сведения об этих функциях см. в статье Microsoft Open Database Connectivity (ODBC). При первой загрузке решения (оно находится в папке C++) Visual Studio предложит обновить решение до текущей версии Visual Studio. Нажмите кнопку Да.
Чтобы использовать собственный клиент, вам нужен файл заголовка и файл библиотеки. Эти файлы содержат функции и определения, относящиеся к SQL Server, за пределами функций ODBC, определенных в
sql.h
. Откройте Проект>Свойства>Каталоги VC++, добавьте следующий каталог include:%ProgramFiles%\Microsoft SQL Server\110\SDK\Include
И каталог библиотеки:
%ProgramFiles%\Microsoft SQL Server\110\SDK\Lib
Добавьте эти строки в odbcsql.cpp. #define предотвращает компиляцию несущественных определений OLE DB.
#define _SQLNCLI_ODBC_ #include <sqlncli.h>
Обратите внимание на то, что в этом примере не используются функции собственного клиента, поэтому для его компиляции и выполнения описанные выше действия не требуются. Теперь проект настроен для использования этой функции. Подробнее см. в разделе Программирование с SQL Server Native Client.
Укажите, какой драйвер следует использовать в подсистеме ODBC. Пример передает атрибут строки подключения драйвера как аргумент командной строки. Выберите Проект>Свойства>Отладка и добавьте следующий аргумент команды:
DRIVER="SQL Server Native Client 11.0"
Нажмите клавишу F5 для сборки и запуска приложения. Откроется диалоговое окно драйвера, предлагающее войти в базу данных. Введите
(localdb)\MSSQLLocalDB
и установите флажок Использовать доверительное подключение. Нажмите кнопку ОК. Вы увидите консоль с сообщениями об успешном подключении. Затем появится командная строка, в которой можно ввести инструкцию SQL. На следующем экране показан пример и результаты запроса: