Partilhar via


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

Aplica-se a:Banco de Dados SQL do Azure

Esta postagem destina-se a desenvolvedores C e C++ que tentam se conectar ao Banco de Dados SQL do Azure. Ele é dividido em seções para que você possa saltar para a seção que melhor captura seu interesse.

Pré-requisitos para o tutorial C/C++

Certifique-se de que tem os itens seguintes:

  • Uma conta ativa do Azure. Se não tiver uma, pode inscrever-se numa Avaliação Gratuita do Azure.
  • Visual Studio. Você deve instalar os componentes de linguagem C++ para criar e executar este exemplo.
  • Desenvolvimento Linux Visual Studio. Se você estiver desenvolvendo no Linux, você também deve instalar a extensão Linux do Visual Studio.

Banco de Dados SQL do Azure e SQL Server em máquinas virtuais

O Banco de Dados SQL do Azure foi criado no Microsoft SQL Server e foi projetado para fornecer um serviço de alta disponibilidade, desempenho e escalável. Há muitos benefícios em usar o Azure SQL em seu banco de dados proprietário em execução local. Com o Azure SQL, você não precisa instalar, configurar, manter ou gerenciar seu banco de dados, mas apenas o conteúdo e a estrutura do seu banco de dados. Coisas típicas com as quais nos preocupamos com bancos de dados, como tolerância a falhas e redundância, são todas incorporadas.

Atualmente, o Azure tem duas opções para hospedar cargas de trabalho do SQL Server: Banco de Dados SQL do Azure, banco de dados como serviço e SQL Server em Máquinas Virtuais (VM). Não entraremos em detalhes sobre as diferenças entre esses dois, exceto que o Banco de Dados SQL do Azure é sua melhor aposta para novos aplicativos baseados em nuvem para aproveitar a economia de custos e a otimização de desempenho que os serviços de nuvem oferecem. Se você estiver pensando em migrar ou estender seus aplicativos locais para a nuvem, o SQL Server na máquina virtual do Azure pode funcionar melhor para você. Para simplificar este artigo, vamos criar um Banco de Dados SQL do Azure.

Tecnologias de acesso a dados: ODBC e OLE DB

A conexão com o Banco de Dados SQL do Azure não é diferente e, atualmente, há duas maneiras de se conectar a bancos de dados: ODBC (conectividade de Banco de Dados Aberto) 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 é relativamente simples, e também muito mais rápido do que OLE DB. A única ressalva aqui é que o ODBC usa uma API antiga no estilo C.

Etapa 1: Criando seu Banco de Dados SQL do Azure

Consulte a página de introdução para saber como criar um banco de dados de exemplo. Como alternativa, você pode seguir este pequeno vídeo de dois minutos para criar um Banco de Dados SQL do Azure usando o portal do Azure.

Etapa 2: Obter a cadeia de conexã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.

No portal do Azure, vá para sua cadeia de conexão ODBC 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 de visão geral do seu banco de dados:

ODBCConnectionString

ODBCConnectionStringProps

Copie o conteúdo da cadeia de caracteres ODBC (Includes 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.

Etapa 3: Adicionar seu IP ao firewall

Vá para a seção de firewall do seu servidor e adicione o IP do cliente ao firewall usando estas etapas para garantir que possamos estabelecer uma conexão bem-sucedida:

AddyourIPWindow

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

Etapa 4: Conectando-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:

DSN Propsfile

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 criar tabela para validar a conectividade do banco de dados:

SQL Commands

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 esse arquivo DSN para automação e proteção de suas configurações de autenticação:

Create DSN File

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.

Etapa 5: Conectando-se a partir de um aplicativo Linux C/C++

Caso você ainda não tenha ouvido a notícia, o Visual Studio agora permite que você desenvolva aplicativos Linux C++ também. Você pode ler sobre esse novo cenário no 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 Linux Azure.

Para este tutorial, vamos supor que você tenha uma distribuição Linux Ubuntu 16.04 configurada. As etapas aqui também devem se aplicar 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 - Cross Platform ->>> Connection Manager, adicione uma conexão à sua caixa Linux:

Tools Options

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

New project template

Em seguida, você pode adicionar um novo arquivo de origem C e substituí-lo por esse conteúdo. Usando as APIs ODBC SQLAllocHandle, SQLSetConnectAttr e SQLDriverConnect, você deve ser capaz de inicializar e estabelecer uma conexão com seu banco de dados. Como no exemplo ODBC do Windows, você precisa 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=<"
                    "yourpassword>;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:

Adding ODBC as an input library

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

Linux Console

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

Linux Console Window Output

Parabéns! Você concluiu com êxito o tutorial 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 solução GetStarted que contém todos os exemplos neste artigo no GitHub:

  • Exemplo de ODBC C++ do Windows, Baixe o exemplo de ODBC do Windows C++ para se conectar ao Azure SQL
  • Exemplo de ODBC C++ Linux, Baixe o exemplo de ODBC do Linux C++ para se conectar ao Azure SQL

Próximos passos

Recursos adicionais