Compartilhar via


Conectar-se ao Banco de Dados SQL usando C e C++

Aplica-se a: Banco de Dados SQL do Azure

Este artigo ajuda os desenvolvedores de C e C++ a se conectarem ao Banco de Dados SQL do Azure.

Pré-requisitos

Para concluir as tarefas deste guia, você precisará do seguinte:

Tecnologias de acesso a dados: ODBC e OLE DB

No momento, há duas formas de se conectar ao Banco de Dados SQL do Azure: ODBC (Open Database Connectivity) e OLE DB (banco de dados de vinculação e incorporação de objeto). Nos últimos anos, a Microsoft tem se alinhado com o ODBC para acesso a dados relacionais nativos. O ODBC é muito mais rápido do que OLE DB. A única limitação é que o ODBC usa uma API de estilo C antiga.

Criar seu banco de dados SQL do Azure

Consulte a página de introdução para aprender a criar um banco de dados de exemplo. Como alternativa, siga este breve vídeo de dois minutos para criar um Banco de Dados SQL do Azure usando o Portal do Azure.

Obter a cadeia de conexão

Depois do Banco de Dados SQL do Azure ser configurado, você precisará executar as etapas a seguir para determinar as informações de conexão e adicionar o IP do cliente para acesso ao firewall.

No Portal do Azure, vá para a cadeia de conexão ODBC do Banco de Dados SQL do Azure usando Mostrar cadeias de conexão do banco de dados listado como parte da seção Visão geral do banco de dados:

ODBCConnectionString

ODBCConnectionStringProps

Copie o conteúdo da cadeia de caracteres ODBC (inclui Node.js) [autenticação do SQL]. Usaremos essa cadeia de caracteres posteriormente para conectar do nosso interpretador de linha de comando ODBC C++. Essa cadeia de caracteres fornece detalhes como o driver, servidor e outros parâmetros de conexão de banco de dados.

Adicionar o IP ao firewall

Vá para a seção de firewall do servidor e adicione seu IP do cliente ao firewall usando estas etapas para verificar se é possível estabelecer uma conexão bem-sucedida:

AddyourIPWindow

Neste ponto, você configurou seu Banco de Dados SQL do Azure e está pronto para se conectar do código C++.

Conectar de um aplicativo C/C++ no Windows

Você pode se conectar facilmente ao seu Banco de Dados SQL do Azure usando ODBC no Windows com este exemplo baseado no Visual Studio. O exemplo implementa um interpretador de linha de comando do ODBC que pode ser usado para se conectar ao nosso Banco de Dados SQL do Azure. Este exemplo usa o um arquivo DSN ( nome de origem do banco de dados) como um argumento de linha de comando ou cadeia de conexão detalhada copiado previamente no Portal do Azure. Abra a página de propriedade para este projeto e cole a cadeia de conexão como um argumento de comando como mostrado aqui:

DSN Propsfile

Verifique se você forneceu os detalhes de autenticação adequados para seu banco de dados como parte dessa cadeia de conexão do banco de dados.

Abra o aplicativo e compile-o. Você verá a seguinte janela validando se a conexão foi bem-sucedida. Você poderá até mesmo executar alguns comandos básicos do SQL como create table para validar a conectividade do banco de dados:

Comandos SQL

Como alternativa, você poderia criar um arquivo DSN usando o assistente que é iniciado quando nenhum argumento é fornecido. É recomendável que você também experimente usar essa opção. Você pode usar esse arquivo DSN para automação e para proteger suas configurações de autenticação:

Criar um arquivo DSN

Parabéns! Agora você se conectou com êxito ao SQL Azure usando o C++ e ODBC no Windows. Você pode continuar lendo para fazer o mesmo para a plataforma Linux.

Conectar de um aplicativo C/C++ no Linux

Você pode desenvolver aplicativos C++ para Linux no Visual Studio. Para saber mais, consulte o seguinte blog: Visual C++ para Desenvolvimento em Linux.

Para compilar para Linux, você precisa de um computador remoto onde sua distribuição do Linux está sendo executada. Se você não tiver um disponível, poderá configurar um rapidamente usando máquinas virtuais do Azure Linux.

Este guia pressupõe que você tem uma distribuição do Ubuntu 16.04 Linux configurada. As etapas aqui também se aplicam ao Ubuntu 15.10, Red Hat 6 e Red Hat 7.

As etapas a seguir instalam as bibliotecas necessárias para SQL e ODBC para sua distribuição:

    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*

Inicie o Visual Studio. Em Ferramentas -> Opções -> Multiplataforma -> Gerenciador de Conexões, adicione uma conexão à caixa do Linux:

Opções de Ferramentas

Depois de estabelecer a conexão via SSH, crie um modelo de projeto Vazio (Linux):

Novo modelo do projeto

Você pode adicionar um novo arquivo de origem C e substituí-lo por este conteúdo. Usando as APIs ODBC SQLAllocHandle, SQLSetConnectAttr e SQLDriverConnect, você deverá poder inicializar e estabelecer uma conexão com o banco de dados. Como no exemplo do Windows ODBC, você precisará substituir a chamada SQLDriverConnect pelos detalhes dos parâmetros de cadeia de conexão do banco de dados copiados anteriormente no Portal do Azure.

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

A última coisa a fazer antes de compilar é adicionar odbc como uma dependência de biblioteca:

Adicionando o ODBC como uma biblioteca de entrada

Para iniciar o aplicativo, abra o Console do Linux no menu Depurar:

Console do Linux

Se a conexão for bem-sucedida, agora você verá o nome do banco de dados atual impresso no Console do Linux:

Saída da Janela de Console do Linux

Parabéns! Você concluiu com êxito o guia e poderá se conectar ao seu Banco de Dados SQL do Azure do C++ em plataformas Windows e Linux.

Obter a solução completa do tutorial de C/C++

Você pode encontrar a solução de Introdução que contém todos os exemplos nesse artigo no GitHub: