MySql

Como conectar uma aplicação C++ a uma base de dados MySQL usando o Visual Studio e o MySQL Connector/C++.

1. Pré-requisitos

  • Visual Studio instalado (recomenda-se VS 2019 ou 2017 para melhor compatibilidade com o Connector/C++ 8.x1).
  • MySQL Server instalado e funcionando.
  • MySQL Connector/C++ baixado do site oficial do MySQL.

2. Instalação e Configuração

Passo 1: Instale o MySQL Connector/C++

  • Descarregue o MySQL Connector/C++ (ZIP) para Windows.
  • Extraia o conteúdo para uma pasta de fácil acesso, por exemplo:
    C:\Libraries\mysql-connector-c++-8.1.0

Passo 2: Crie um Projeto no Visual Studio

  • Abra o Visual Studio.
  • Crie um novo projeto C++ vazio.
  • Adicione um arquivo main.cpp ao projeto.

Passo 3: Configure o Projeto

  1. Inclua diretórios de cabeçalhos
    No menu do projeto:
    • Propriedades > C/C++ > Geral > Diretórios de Inclusão Adicionais
    • Adicione o caminho para a pasta include do Connector/C++.
  2. Inclua diretórios de bibliotecas
    • Propriedades > Linker > Geral > Diretórios de Biblioteca Adicionais
    • Adicione o caminho para a pasta lib64 do Connector/C++.
  3. Adicione dependências de biblioteca
    • Propriedades > Linker > Entrada > Dependências Adicionais
    • Adicione: mysqlcppconn.lib
    • Se estiver usando o Connector/C (API C), adicione libmysql.lib.
  4. Copie DLLs necessárias
    • Copie a libmysql.dll e/ou mysqlcppconn.dll para a pasta do executável do seu projeto (geralmente Debug ou Release).

3. Exemplo de Código para Conexão

Abaixo um exemplo simples usando o MySQL Connector/C++ (API moderna):

#include <iostream>
#include <mysql/jdbc.h> // Inclua o cabeçalho principal do Connector/C++

int main() {
try {
sql::mysql::MySQL_Driver* driver;
std::unique_ptr<sql::Connection> con;

driver = sql::mysql::get_mysql_driver_instance();
con.reset(driver->connect("tcp://127.0.0.1:3306", "utilizador", "senha"));

// Seleciona a base de dados
con->setSchema("nome_base_dados");

std::cout << "Conexão estabelecida com sucesso!" << std::endl;
}
catch (sql::SQLException& e) {
std::cerr << "Erro ao conectar: " << e.what() << std::endl;
return 1;
}
return 0;
}

Observações:

  • Substitua "utilizador", "senha" e "nome_base_dados" pelos seus dados reais.
  • O cabeçalho pode variar: use <mysql/jdbc.h> para o Connector/C++ 8.x.

4. Compilação e Execução

  • Compile o projeto normalmente pelo Visual Studio.
  • Certifique-se de que as DLLs necessárias estejam na mesma pasta do executável.

5. Dicas e Observações

  • Se estiver usando o Visual Studio 2022, pode haver problemas de compatibilidade com o Connector/C++ 8.1.0. Prefira o VS 2019 ou 2017 para integração mais fácil1.
  • Para usar a API C (mais antiga), o cabeçalho é <mysql.h> e a biblioteca é libmysql.lib.
  • Trate sempre exceções para capturar erros de conexão.