Há alguns dias atrás, o professor Luis Gomes, que leciona Banco de Dados 2 para nós, fez uma proposta de trabalho para a sala: “fazer um programa que utilizasse diretamente a API C do MySQL ao invés de utilizar a API pronta que existe no C++ Builder (BCB)”.
A princípio achei que seria fácil que seria somente utilizar a biblioteca que era disponibilizada dentro do MySQL. Realmente não é muito diferente disso, mas, foi um pouco difícil descobrir isso! =D
Primeiramente, tentei no Dev-C++…
Não foi muito difícil! E, após algumas pesquisas na grande rede acabei descobrindo como se faz. São os seguintes passos:
1- Baixe a última versão do Dev-CPP (4.9.9.2 foi a que utilizei) e instale.
2- Execute o Dev e vá no menu Ferramentas>Atualizações. Em seguida no combobox “Select devpak server” selecione “devpaks.org community Devpaks” (2ª opção do combo) e clique no botão “Check for updates”.
3- Após o recebimento dos pacotes, no combobox “Groups”, selecione “Data Base” e procure pela “libmysql” na lista. Selecione-a e clique em “Download Selected”.
4- Após o download uma guia de instalação será iniciada e o pacote será instalado no Dev.
5- Crie um novo projeto “Empty” e salve-o como “.c”.
6- Inclua as bibliotecas e no código:
Vá em no menu:
Ferramentas>Opções do Compilador>Diretórios>C Includes
e adicione a pasta include do MySQL a lista. Aqui estava no seguinte endereço: “C:\Arquivos de programas\MySQL\MySQL Server 5.0\include”
7- Abra as propriedades do projeto. (Clique com o botão direito do mouse sobre o nome do projeto ou Alt+P).
8- Vá na aba “Parâmetros” e na área que está escrito Linker adicione a linha:
-lmysql
10- Clique em ok. Para que o sistema consiga acessar o mysql é preciso que a dll “libmysql.dll” esteja na pasta do projeto. Se não à tem, pode baixá-la aqui.
Outro detalhe, o servidor MySQL que utilizei foi o da ferramenta VertrigoServ que pode ser baixada aqui. A vantagem é que o Vertrigo é muito mais fácil de instalar e configurar que o servidor MySQL original.
Obs: Crie a base de dados no PHPMyAdmin do Vertrigo antes de fazer o teste!
Abaixo segue o código de teste que utilizei:
#include
#include
#include
#include
#include
int main(){
MYSQL *sock;
sock = mysql_init(0);
if (!sock){
printf(“\nErro na inicializacao!”);
getche();
exit(1);
}
if (!mysql_real_connect(sock, ” 127.0.0.1“//ip do servidor
, “vertrigo”//Senha
, “Trabalho_BD2″//nome da base de dados
, 0, NULL, 0)){
printf(“\nErro na conexao!”);
getche();
exit(1);
}
else printf(“\nConectado!”);
mysql_close(sock);
system(“PAUSE>>null”);
return 0;
}
Também consegui fazer a comunicação entre a API do MySQL e o Borland C++ Builder, mas como deu um pouco mais de trabalho, posto amanhã! rsrs
amigo, muito bom esse seu artigo, mas to com alguns problema e nao to conseguindo resolver, o primeiro é q eu to com o mysql 5.1 e nao tem pasta include nele e segundo quando eu compilo o programa ela nao da erro, mas tbm nao aparece nada… nem o print do if nem o do else… abraço
Olá Marcus, obrigado por responder! Bom, primeiramente, eu não usei o MySQL 5.1 ainda, então infelizmente eu não sei te dizer se funcionará. Tente baixar o Vertrigo (http://vertrigo.sourceforge.net/ ), ele utiliza, ainda, a mesma versão do MySQL que eu utilizei para fazer esse tutorial. Já quanto a não dar resultado, tente fazer um debug, colocando “printf”s antes de onde você acha que pode estar o problema. Leva bastante tempo, mas creio que possa ser a melhor forma de você conseguir caçar o erro. (O Dev-Cpp também tem um sisteminha de Debug linha a linha, não lembro muito bem como é, mas me lembro de ter usado na graduação).
Espero ter ajudado, abraços!
Ola Gustavo, obrigado ai pela atenção, eu resolvi encurtar o tempo do debug simplesmente trocando o mysql e instalando a versao 5.0 q tem o include… de qualquer forma… acho q o problema esta nos includes pq eu nao consigo ver os includes q vc usa… se vc puder me falar quais sao acho q ja é um caminho… obrigado mesmo
Gustavo, vlw pela ajuda ai, mas descobri o problema… na verdade eu nao descobri, mas quando eu fiz outro projeto e digitei o codigo de novo funcionou o.O nao sei exatamente o q ocorreu no outro projeto, mas era nele o problema… abraço
Olá Marcus, desculpe não ter respondido o seu comentário anterior, não deu tempo de vê-lo ontem, mas de qualquer forma, que bom que conseguiu fazer funcionar. Me lembro de ter que fazer exatamente isso que vc fez nos meus projetos em C/Cpp da graduação. Talvez não tenha sido essa a última vez que vc tenha que fazer isso! rs
Abraços!