Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa

Usando banco de dados MySQL em linguagem C

 

 

Vários e vários projetos podem ser feitos de forma leve e altamente eficiente usando-se Linux, banco de dados, no caso o MySQL e a poderosíssima linguagem C.

 

Bom, vamos partir do ponto em que você tem o seu sistema operacional Linux atualizado, com o MySQL (para instalar no Debian aqui, e no Fedora aqui) e o GCC instalado.

 

Vamos instalar as bibliotecas do cliente MySQL:

 

 

{code}

apt-get install libmysqlclient-dev

{/code}

 

 

Crie o seguinte banco de dados (teste) e a seguinte tabela (teste) no seu MySQL:

 

 

{code}

create database teste;

use teste;

create table teste (

nome text,

idade int);

{/code}

 

 

Você pode sair ou mudar de console, vamos agora para a programação em C:

 

 

{code}

#include >stdio.h<

#include >mysql/mysql.h.h<

 

void main() {

MYSQL conexao;

mysql_init(&conexao);

if(mysql_real_connect(&conexão,”127.0.0.1”,”root”,”123456”,”teste”,0,NULL,0)) {

printf(“Conectado com sucesso!\n”);

} else {

printf(“Conexao falhou!\n”);

}

}

{/code}

 

 

Com MYSQL conexao criamos o objeto que receberá a conexão com o banco de dados.

 

Com mysql_init(&conexao) iniciamos as bibliotecas para uso do MySQL no programa.

 

Com mysql_real_connect(&conexão,”127.0.0.1”,”root”,”123456”,”teste”,0,NULL,0) realizamos a conexão com o servidor em localhost (127.0.0.1), com o usuário root, senha 123456 e banco de dados chamado teste (que criamos anteriormente).

 

Para compilar, assumindo que seu arquivo chame-se c_mysql.c, use:

 

 

{code}

gcc c_mysql.c –o c_mysql $(mysql_config –libs)

{/code}

 

 

Bom, para compilar o esquema é o de sempre para o gcc só acrescentamos o $(mysql_config –libs) que retorna as diretivas de compilação para as bibliotecas do MySQL a serem adicionadas ao programa.

 

Executando você terá a confirmação de que a conexão foi feita com sucesso. Caso contrário verifique o endereço, usuário, senha e nome do banco de dados.

 

Agora vamos continuar o programa e fazer uma inserção de dados no banco de dados:

 

 

{code}

#include >stdio.h<

#include >mysql/mysql.h.h<

 

void main() {

MYSQL conexao;

int ret;

mysql_init(&conexao);

if(mysql_real_connect(&conexão,”127.0.0.1”,”root”,”123456”,”teste”,0,NULL,0)) {

printf(“Conectado com sucesso!\n”);

ret = mysql_query(&conexao,”insert into teste(nome,idade) values (‘seu curso’,10);”);

if(ret) {

printf(“Falha ao inserir!\n”);

} else {

printf(“Insercao com sucesso!\n”);

}

mysql_close(&conexao);

} else {

printf(“Conexao falhou!\n”);

}

}

{/code}

 

 

A variável ret receberá o retorno do comando mysql_query que executa a query no banco de dados.

 

Caso ret seja 0 a inserção falhou, caso contrário a inserção foi feita com sucesso.

 

O comando mysql_close fecha a conexão com o banco de dados e libera o canal de comunicação.

 

Para compilar é o mesmo método já mostrado acima.

 

 

{code}

gcc c_mysql.c –o c_mysql $(mysql_config –libs)

{/code}

 

 

Agora vamos fazer uma consulta ao banco de dados:

 

 

{code}

#include >stdio.h<

#include >mysql/mysql.h.h<

 

void main() {

MYSQL conexao;

MYSQL_RES *result;

MYSQL_ROW lin;

MYSQL_FIELD *rs;

int ret;

mysql_init(&conexao);

if(mysql_real_connect(&conexão,”127.0.0.1”,”root”,”123456”,”teste”,0,NULL,0)) {

printf(“Conectado com sucesso!\n”);

ret = mysql_query(&conexao,”select * from teste;”);

if(ret) {

printf(“Falha ao inserir!\n”);

} else {

printf(“Insercao com sucesso!\n”);

result = mysql_store_result(&conexao);

if(result) {

rs = mysql_fetch_fields(result);

while((lin = mysql_fetch_row(result)) != NULL) {

printf(“%s\t%s\n”,lin[0],lin[1]);

}

}

}

mysql_close(&conexao);

} else {

printf(“Conexao falhou!\n”);

}

}

{/code}

 

 

Com a variável result temos o resultado da consulta. Com a variável lin teremos os registros do banco de dados e com a variável rs teremos o ResultSet da consulta.

 

Note que é preciso fazer a consulta primeiro (mysql_query) e depois extrair o resultado (mysql_store_result), para finalmente ler cada registro (mysql_fetch_row).

 

 

Os retornos são sempre do tipo String, por isso o %s em             printf(“%s\t%s\n”,lin[0],lin[1]);

Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa

 

Apesar de muitos problemas ocorridos com o software Dev C++, que nos limita em desenvolver nossos projetos, sempre há uma solução, que no nosso caso são bibliotecas que são necessárias serem instaladas no DEV C++, como por exemplo, o Winbgim, que nos possibilita fazer gráficos como círculos, arcos e elipses.

 

 

Instalando o Winbgim

 


 

 

 

 

 


 
  • Abra o software Dev C++, e clique em Ferraments, em seguida selecione a opção Package Manager.

     


 
  • Feito isso clique sobre o botão Install, procure a pasta onde a biblioteca foi salva e clique em abrir

     


 
  • Na tela que abrirá clique em install

     


 

 

  • Em seguida em Finish

 

 

  • Note que que foi adicionado a biblioteca Winbgim

 
  • Feche a janela, e vamos “colocar as mãos na massa”, clique em Arquivo, selecione a opção Novo, e clique em projeto

     


 

  • Procure a opção Console Graphics Application,e clique em ok

 

 

 

  • Salve o projeto em uma pasta de sua escolha, na janela que abriu aperte o botão F9 do teclado, e veja o que acontece.

 

 

 

 

  • Feito isso, feche o programa, apague todo o código e digite os seguintes códigos

 

{code}
#include

#include

#include

#include

int main(void)

{

int gdriver = DETECT, gmode, errorcode;

int midx, midy;

int stangle = 45, endangle = 135;

int radius = 100;

initgraph(&gdriver, &gmode, "");

errorcode = graphresult();

if (errorcode != grOk) {

printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1);

}

midx = getmaxx() / 2;

midy = getmaxy() / 2;

setcolor(getmaxcolor());

arc(midx, midy, stangle, endangle, radius);

getch();

closegraph();

return 0;

}
{/code}

 

  • Após digitar o código, execute o programa pressionando o botão F9 do teclado

     

 

Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa

 

 

Existem muitas IDEs (Integrated Development Environment) para programar aplicações para Windows que já disponibilizam componentes para interface do ambiente gráfico, mas se você gosta da linguagem C no geral e gosta de “escovar bits” você pode usar o Dev-C++ e criar suas próprias janelas.

 

Uma vantagem disso é que o mesmo código fonte a ser utilizado no Windows também poderá ser recompilado e utilizado no Linux! Ou seja, o melhor dos dois mundos: usar o Windows, já bem conhecido e dominado, para aprender a programar aplicações com interfaces gráficas para Linux.

 

Para começar você já deve ter o Dev-C++ instalado, caso não tenha procure em www.bloodshed.net/devcpp.html.

 

Baixe o pacote de desenvolvimento do GTK+ para o Dev-C++  a partir de http://gtk.alkia.org/index.php, você irá precisar do pacote para o Dev-C++ e do runtime. Também há também uma cópia do pacote em http://www.seucurso.com.br/downloads/ gtk_dev_2.12.12.zip e do runtime em http://www.seucurso.com.br/downloads/gtk-2_12_12-runtime.zip

 

Descompacte o runtime e execute a instalação:

 

 

Selecione a linguagem que mais lhe agradar e clique no botão OK:

 

 

Na tela de boas vindas clique no botão Next:

 

 

Escolha o local de instalação ou deixe o padrão, clique no botão Next:

 

 

Escolha o nome do grupo de ícones a ser criado no menu iniciar do Windows ou deixe o padrão, clique no botão Next:

 

 

Clique no botão Install para iniciar a instalação:

 

 

Ao final da instalação clique no botão Finish.

 

Descompacte o arquivo do pacote de desenvolvimento.

 

Vamos então instalar o pacote de desenvolvimento do GTK+ no Dev-C++. Vá até o menu Tool e clique sobre a opção Package Manager:

 

 

A seguinte janela deverá ser aberta:

 

 

Clique no botão Install:

 

 

Selecione o arquivo com o pacote de desenvolvimento e clique no botão Abrir:

 

 

Na tela de boas vindas clique no botão Next:

 

 

Leia os termos de licença e clique no botão Install:

 

 

Aguarde a instalação concluir e clique no botão Finish:

 

 

Você verá o pacote instalado:

 

 

Feche a janela do Package Manager, precisamos efetuar algumas configurações:

 

Vá novamente ao menu Tools e clique sobre a opção Compiler Options:

 

 

Selecione a aba Diretories e em seguida a sub-aba C Includes:

 

 

Adicione os seguintes diretórios (verifique o endereço da sua instalação do Dev-C++):

 

{code}

C:\Dev-Cpp\include\gtk-2.0

C:\ Dev-Cpp\include\atk-1.0

C:\ Dev-Cpp\include\cairo

C:\Dev-Cpp\include\pango-1.0

C:\ Dev-Cpp\include\glib-2.0

C:\ Dev-Cpp\lib\gtk-2.0\include

C:\ Dev-Cpp\lib\glib-2.0\include

{/code}

 

Faça o mesmo na guia C++ Includes.

 

Na aba Compiler, marque a opção “Add the following commands when calling compiler” e na caixa de texto coloque:

 

{code}

-mms-bitfields

{/code}

 

 

Marque também a opção “Add these commands to the linker command line” e na caixa de texto coloque:

 

{code}

-lgtk-win32-2.0 -lgdk-win32-2.0 -limm32 -lshell32 -lole32 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpangoft2-1.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -lfreetype -lzdll -lfontconfig -lpng13

{/code}

 

 

Pronto!

 

Vamos testar, abra um novo projeto vazio e abra um novo arquivo de fonte e tente o seguinte código:

 

{code}

#include<gtk/gtk.h>

int main(int argc, char **argv)

{

GtkWidget *janela;

gtk_init(&argc, &argv);

janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_title(GTK_WINDOW (janela), "Hello Word!!!");

gtk_widget_show(janela);

gtk_main();

return 0;

}

{/code}

 

Para que seu programa rode você precisará de uma série de DLLs na mesma pasta do seu projeto, sendo elas:

 

{code}

iconv.dll

intl.dll

libatk-1.0-0.dll

libcairo-2.dll

libgdk_pixbuf-2.0-0.dll

libgdk-win32-2.0-0.dll

libglib-2.0-0.dll

libgmodule-2.0-0.dll

libgobject-2.0-0.dll

libgtk-win32-2.0-0.dll

libpango-1.0-0.dll

libpangocairo-1.0-0.dll

libpangowin32-1.0-0.dll

libpng13.dll

{/code}

 

 

Você poderá copiá-las do local da instalação do runtime que fizemos no início do tutorial. Se você deixou o local padrão ele deverá ser C:\Program Files (x86)\Common Files\GTK\2.0

 

Outra solução, talvez mais prática, é colocar o caminho do runtime na variável de ambiente PATH do seu Windows.

 

O resultado final:

 

 

Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa

 

Se você tem interesse em programar usando interface gráfica no Linux uma excelente saída é usar as bibliotecas GTK+ (também disponível no Windows, veja em http://www.seucurso.com.br/index.php?option=com_content&view=article&id=156:como-compilar-programas-em-c-usando-o-gtk-no-dev-c&catid=905:linguagem-de-programacao&Itemid=69) , com essa biblioteca e conhecimento de linguagem C você pode desenvolver aplicações usando janelas e todas os componentes disponíveis e necessários para uma boa interface gráfica.

 

Primeiro é preciso ter o GTK+ instalado, para isso use o seguinte comando. Lembre-se de estar logado como super-usuário (root):

 

{code}

yum install gtk* gtk+*

{/code}

 

Pronto! Feito isso já está tudo pronto para desenvolver usando o GTK+, você pode testar se sua instalação está correta e começar a entender essa biblioteca com o exemplo abaixo:

 

{code}

hello.c

 

#include<gtk/gtk.h>

int main(int argc, char **argv)

{

GtkWidget *janela;

gtk_init(&argc, &argv);

janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_title(GTK_WINDOW (janela), "Hello Word!!!");

gtk_widget_show(janela);

gtk_main();

return 0;

}

{/code}

 

Para compilar é necessário passar alguns parâmetros ao compilador GCC, sendo o comando completo:

 

{code}

gcc hello.c –o hello –Wall –g `gtk-config –cflags –libs`
{/code}

 

Agora execute seu programa:

 

{code}

./hello

{/code}

 

Eis o resultado:

 

Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa

 

Segundo a Wikipedia (http://pt.wikipedia.org/wiki/Allegro_(biblioteca)) Allegro é uma biblioteca livre de código fonte aberto para o desenvolvimento de video games.

 

O objetivo principal é a independência de plataforma de operação. O mesmo código-fonte, sem tirar nem pôr um único caractere que seja, deve compilar e rodar em todas as plataformas suportadas. Um objetivo de curto prazo é a plataforma 64-bits.

 

O seu principal uso é no escopo da programação de jogos. Atualmente ela possui uma grande comunidade pois além de possuir diversos recursos nativamente (gráficos 2D, 3D com OpenGL, entrada de dados pelo teclado e mouse, RLE-Sprites, exibição de vídeos e controle de som) a API é bastante extensível fazendo que com existam diversos addons disponíveis.

 

A interface pública de acesso da biblioteca é escrita em C, porém há alguns extensores (não-oficiais) para outras linguagem de programação. Internamente seu código fonte é escrito em uma mistura de C, Assembly (drivers i386), C++ e Objective-C.

 

A biblioteca Allegro também possível funções e classes para programação para o iPhone e Android, o que a torna mais atraente ainda para programadores que buscam inovação e novos nichos.

 

Você precisará ter instalado em seu computador o DevC++, caso você já tenha verifique se está com a última versão, caso contrário recomenda-se desinstalar a sua versão atual, baixar novamente e instalar a última versão disponível. Você pode encontrar o DevC++ para download gratuito em http://sourceforge.net/projects/dev-cpp/files/latest/download

 

Faça download também da última versão do Devpak da biblioteca Allegro em http://sourceforge.net/projects/alleg/files/allegro-bin/ (atualmente 4.2.1), também há uma cópia para download em http://www.seucurso.com.br/downloads/allegro-4.2.1-1mol.DevPak

 

Para instalar a Allego abra o seu Dev-C++, clique no menu Ferramentas e em seguida na opção Package Manager:

 

 

No Dev-C++ Package Manager clique no ícone Install:

 

 

Encontre o arquivo contendo o pacote da biblioteca Allegro que você fez download e clique no botão Abrir, a instalação irá iniciar:

 

 

Clique no botão Next:

 

 

Clique no botão Next:

 

 

Clique no botão Install e aguarde:

 

 

Para terminar clique no botão Finish.

 

 

Feche o Package Manager e vamos fazer um programa exemplo para testar se a biblioteca foi corretamente instalada:

 

No Dev-C++ clique no menu Arquivo, selecione a opção Novo e clique em Projeto. Selecione na aba Multimia o ícone Allegro application (static), dê nome ao seu projeto. Selecionar a linguagem que será utilizada, para esse nosso primeiro exemplo não fará diferença, mas caso queira usar orientação a objetos selecione Projeto C++, caso contrário selecione Projeto C. Clique no botão OK:

 

 

Você será solicitado a salvar o projeto:

 

 

Automaticamente já será aberto um código fonte para testes:

 

 

Salve o código fonte no mesmo local onde está salva seu projeto e execute-o utilizando o menu Executar, a barra de ferramentas ou simplesmente pressionando F9:

 

 

Se abrir uma janela com preenchimento preto é que tudo está funcionando perfeitamente!

 

Para fechar a janela pressione a tecla ESC.

 

Em breve serão colocados tutoriais para ensinar a usar as funções dessa biblioteca.

 

DIVIRTA-SE!