Dev-C++ vs MySQL C API

23 02 2008

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

, “root”//usuario do MySQL
, “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


Ações

Informações

5 respostas

23 07 2009
marcus

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

24 07 2009
Gustavo Nogueira de Oliveira

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!

24 07 2009
marcus

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 ;)

25 07 2009
marcus

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

25 07 2009
Gustavo Nogueira de Oliveira

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!

Deixe um comentário