Partilhar 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 etapas neste guia, você precisa do seguinte:

Tecnologias de acesso a dados: ODBC e OLE DB

Atualmente, há duas maneiras 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 Objetos). Nos últimos anos, a Microsoft alinhou-se com o ODBC para acesso a dados relacionais nativos. ODBC é muito mais rápido do que OLE DB. A única ressalva aqui é que o ODBC usa uma API antiga no estilo C.

Criar a sua Base de Dados SQL do Azure

Consulte a página de introdução para saber como criar um banco de dados de exemplo.

Obter a cadeia de ligação

Depois que o Banco de Dados SQL do Azure tiver sido provisionado, 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, vá para suas cadeias de conexão do Banco de Dados SQL do Azure usando a seção Mostrar cadeias de conexão de banco de dados listadas como parte da seção Visão geral do seu banco de dados:

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

  2. Selecione a guia ODBC.

    Captura de tela do portal do Azure de uma Cadeia de Conexão ODBC.

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

Adicione o seu IP à firewall

  1. Vá para o servidor lógico do Banco de Dados SQL do Azure. Selecione o link para Nome do servidor na página Visão geral do seu 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 tiver sido selecionada.
  4. Adicione o IP do seu 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 adicionar 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.

Sugestão

Adicionar o IP da estação de trabalho do seu cliente ao firewall da rede pública é aceitável para um laboratório temporário ou configuração de aprendizagem, mas para uma solução empresarial 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 este servidor como DESATIVADO no nível do servidor.
  • Use os pontos de extremidade do Serviço VNet e as Regras de Firewall da VNet.
  • Use o Link Privado.

Conectar-se a partir de um aplicativo Windows C/C++

Você pode se conectar facilmente ao Banco de Dados SQL do Azure usando ODBC no Windows usando este exemplo que cria com o Visual Studio. O exemplo implementa um interpretador de linha de comando ODBC que pode ser usado para se conectar ao nosso Banco de Dados SQL do Azure. Este exemplo usa um arquivo DSN (Database source name file) como um argumento de linha de comando ou a cadeia de conexão detalhada que copiamos anteriormente do portal do Azure. Abra a página de propriedades deste projeto e cole a cadeia de conexão como um argumento de comando, conforme mostrado aqui:

Ficheiro de Propriedades DSN.

Certifique-se de fornecer os detalhes de autenticação corretos para seu banco de dados como parte dessa cadeia de conexão de banco de dados.

Inicie o aplicativo para criá-lo. Você verá a janela a seguir validando uma conexão 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ê pode criar um arquivo DSN usando o assistente que é iniciado quando nenhum argumento de comando é fornecido. Recomendamos que você tente esta opção também. Você pode usar este arquivo DSN para automação e proteção de suas configurações de autenticação:

Captura de tela do processo de criação de arquivo DSN, a página Selecionar fonte de dados.

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

Conectar-se a partir de um aplicativo Linux C/C++

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

Para construir para Linux, você precisa de uma máquina remota onde sua distro Linux está sendo executada. Se você não tiver um disponível, poderá configurá-lo rapidamente usando máquinas virtuais do Azure Linux e uma variedade de métodos de implantação.

Este guia assume que você tem uma distribuição Linux Ubuntu 16.04 configurada. As etapas 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 distro:

    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 ->Gestor de Conexões Multiplataforma, adicione uma conexão à sua máquina Linux:

Captura de ecrã de Opções de Ferramentas para criar e remover ligações SSH.

Depois que a conexão sobre SSH for estabelecida, crie um modelo de projeto vazio (Linux):

Captura de tela dos modelos para novos projetos.

Em seguida, você pode adicionar um novo arquivo de origem C e substituí-lo por esse conteúdo. Usando as APIs SQLAllocHandleODBC , SQLSetConnectAttre SQLDriverConnect, você deve ser capaz de inicializar e estabelecer uma conexão com seu banco de dados.

Como no exemplo de ODBC do Windows, precisas substituir a chamada SQLDriverConnect pelos detalhes dos parâmetros da cadeia de conexão do banco de dados copiados do portal do Azure anteriormente.

     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 de ODBC como uma biblioteca de entrada.

Para iniciar seu aplicativo, abra o console Linux no menu Depurar :

Captura de tela da opção de menu Console do Linux.

Se sua conexão foi bem-sucedida, você deve ver o nome do banco de dados atual impresso no console do Linux:

Captura de tela da saída da janela do console Linux.

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

Obtenha a solução completa do tutorial C/C++

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