Поделиться через


Подключение к базе данных SQL с помощью C и C++

Применимо к: База данных SQL Azure

Эта статья помогает разработчикам C и C++ подключаться к База данных SQL Azure.

Необходимые компоненты

Чтобы выполнить действия, описанные в этом руководстве, вам потребуется следующее:

  • Активная учетная запись Azure. Если у вас нет такой учетной записи, вы можете зарегистрироваться для использования бесплатной пробной версии Azure.
  • Visual Studio. Для разработки и запуска этого примера необходимо установить компоненты языка C++.
  • Инструменты разработки Visual Studio для Linux. Если вы разрабатываете приложение на платформе Linux, необходимо также установить расширение Linux для Visual Studio.

Технологии доступа к данным: ODBC и OLE DB

В настоящее время существует два способа подключения к База данных SQL Azure: ODBC (open Database Connectivity) и OLE DB (база данных связывания объектов и внедрение базы данных). В последние годы корпорация Майкрософт поддерживает ODBC для доступа к собственным реляционным данным. ODBC гораздо быстрее, чем OLE DB. Единственное предостережение — ODBC использует старый API в стиле C.

Создание Базы данных SQL Azure

Чтобы узнать, как создать образец базы данных, перейдите на страницу Начало работы . Также это можно сделать с помощью портала Azure, просмотрев короткий 2-минутный видеоролик.

Получение строки подключения

После подготовки Базы данных SQL Azure необходимо выполнить следующие действия, чтобы найти информацию о подключении и добавить IP-адрес клиента для доступа через брандмауэр.

В портал Azure перейдите к База данных SQL Azure ODBC строка подключения с помощью строка подключения базы данных Show, перечисленных в разделе "Обзор" для базы данных:

ODBCConnectionString

ODBCConnectionStringProps

Скопируйте содержимое строки ODBC (включает Node.js) [проверка подлинности SQL]. Оно будет использоваться позже для подключения из интерпретатора командной строки ODBC C++. Эта строка содержит такие сведения, как драйвер, сервер и другие параметры подключения к базе данных.

Добавление IP-адреса в брандмауэр

Перейдите к разделу брандмауэра, где указан сервер, и добавьте IP-адрес клиента с помощью этих действий, чтобы установить подключение.

AddyourIPWindow

На этом этапе База данных SQL Azure настроена и готова к подключению из приложения C++.

Подключение из приложения Windows C/C++

К Базе данных SQL Azure можно подключиться при помощи ODBC в Windows с использованием этого примера, созданного с использованием Visual Studio. В этом примере используется интерпретатор командной строки ODBC, с помощью которого можно подключиться к Базе данных SQL Azure. Данный пример принимает в качестве аргумента командной строки файл с именем базы данных-источника (DSN) или подробную строку подключения, скопированную на портале Azure ранее. Откройте страницу свойств для этого проекта и вставьте строку подключения в качестве аргумента команды, как показано ниже:

DSN Propsfile

Убедитесь, что в строке подключения к базе данных указаны правильные сведения для проверки подлинности.

Запустите приложение, чтобы создать его. Должно появиться следующее окно, подтверждающее успешность подключения. Чтобы проверить подключение базы данных, можно выполнить базовые команды SQL, например создать таблицу:

Команды SQL

Кроме того, файл DSN можно создать при помощи мастера, который запускается, если не указаны аргументы командной строки. Рекомендуется попробовать и этот вариант. Этот файл DSN можно использовать для автоматизации и защиты параметров проверки подлинности:

Создание файла DSN

Поздравляем! Вы успешно установили подключение к базе данных SQL Azure при помощи C++ и ODBC в Windows. Чтобы сделать то же самое для платформы Linux, см. сведения дальше в этой статье.

Подключение из приложения Linux C/C++

Вы можете разрабатывать приложения C++ Linux в Visual Studio. Дополнительные сведения см. в следующем блоге: Visual C++ для разработки Linux.

Чтобы создавать приложения для Linux, необходим удаленный компьютер, на котором запущен дистрибутив Linux. Если у вас нет такого компьютера, его можно быстро настроить при помощи виртуальных машин Linux Azure.

В этом руководстве предполагается, что у вас есть дистрибутив Ubuntu 16.04 Linux. Действия также применяются к Ubuntu 15.10, Red Hat 6 и Red Hat 7.

С помощью следующих действий устанавливаются библиотеки, необходимые вашему дистрибутиву для SQL и ODBC:

    sudo su
    sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/mssql-ubuntu-test/ xenial main" > /etc/apt/sources.list.d/mssqlpreview.list'
    sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
    apt-get update
    apt-get install msodbcsql
    apt-get install unixodbc-dev-utf16 #this step is optional but recommended*

Запустите Visual Studio. Последовательно выберите "Средства" -> "Параметры" -> "Кроссплатформенный" -> "Диспетчер соединений" и добавьте подключение к компьютеру под управлением Linux:

"Параметры"" data-linktype="relative-path"/>

После того как установлено подключение по протоколу SSH, создайте шаблон пустого проекта (Linux):

Шаблон нового проекта

Затем можно добавить новый исходный файл C и заменить его этим содержимым. Используя API ODBC SQLAllocHandle, SQLSetConnectAttr и SQLDriverConnect, можно инициализировать и установить подключение к базе данных. Как и для образца Windows ODBC, необходимо заменить вызов SQLDriverConnect сведениями из параметров строки подключения к базе данных, ранее скопированными на портале Azure.

     retcode = SQLDriverConnect(
        hdbc, NULL, "Driver=ODBC Driver 13 for SQL"
                    "Server;Server=<yourserver>;Uid=<yourusername>;Pwd=<"
                    "yourpassword>;database=<yourdatabase>",
        SQL_NTS, outstr, sizeof(outstr), &outstrlen, SQL_DRIVER_NOPROMPT);

Последнее что необходимо выполнить перед компиляцией — добавить odbc в качестве зависимости библиотеки:

Добавление ODBC в качестве входной библиотеки

Чтобы запустить приложение, откройте консоль Linux из меню Отладка:

Консоль Linux

Если подключение успешно, вы увидите имя текущей базы данных в консоли Linux:

Выходные данные в окне консоли Linux

Поздравляем! Вы успешно выполнили руководство и теперь можете подключиться к База данных SQL Azure из C++ на платформах Windows и Linux.

Получение полного решения C/C++ для этого руководства

Решение GetStarted, содержащее все примеры из этой статьи, можно найти в таких разделах GitHub: