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.

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.

  1. No portal do Azure, acesse as cadeias de conexão do Banco de Dados SQL do Azure usando a opção Mostrar cadeias de conexão do banco de dados, listada como parte da seção Visão geral do seu banco de dados.

    Captura de tela do portal do Azure de uma página visão geral do banco de dados SQL. O link mostrar cadeias de conexão de banco de dados está realçado.

  2. Selecione a guia ODBC.

    Captura de tela de uma cadeia de conexão ODBC no portal do Azure.

  3. 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

  1. Acesse o servidor lógico do Banco de Dados SQL do Azure. Selecione o link para o nome do servidor na página Visão geral do banco de dados SQL ou navegue até ele por meio da pesquisa do portal do Azure.
  2. Em Segurança, selecione Rede.
  3. Na guia Acesso público, selecione Redes selecionadas se ainda não estiverem.
  4. Adicione o IP do cliente ao firewall usando estas etapas para garantir que possamos estabelecer uma conexão bem-sucedida. Selecione Adicionar o endereço IPv4 do cliente ou adicione uma regra de firewall.

Neste ponto, você configurou o Banco de Dados SQL do Azure e está pronto para se conectar a partir do código C++ da estação de trabalho.

Dica

Adicionar o IP da estação de trabalho do cliente ao firewall de rede pública é aceitável para um laboratório temporário ou configuração de aprendizado, mas para uma solução corporativa ou projeto de longa duração, siga estas práticas recomendadas de segurança:

  • Defina Permitir que os serviços e recursos do Azure acessem esse servidor como OFF no nível do servidor.
  • Use pontos de extremidade de serviço VNet e regras de firewall VNet.
  • Usar um Link Privado.

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:

Propsfile DSN.

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ê pode até mesmo executar alguns comandos SQL básicos, como CREATE TABLE validar a conectividade do banco de dados:

Captura de tela das conexões C++ no odbcsql.exe.

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:

Captura de tela do processo de criação do Arquivo DSN, a página Selecionar Fonte de Dados.

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 uma disponível, poderá configurar uma rapidamente usando máquinas virtuais linux do Azure e uma variedade de métodos de implantação.

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 à sua máquina Linux:

Captura de tela das Opções de Ferramentas para criar e remover conexões SSH.

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

Captura de tela dos modelos para novos projetos.

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.

Assim como no exemplo ODBC do Windows, você precisa substituir a chamada SQLDriverConnect pelos detalhes da cadeia de parâmetros de conexão do banco de dados copiados anteriormente do 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:

Captura de tela da adição do ODBC como uma biblioteca de entrada.

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

Captura de tela da opção de menu 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:

Captura de tela da saída do 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 GetStarted solução que contém todos os exemplos neste artigo no GitHub: