.:: Menu Rápido ::.

Linux | C/C++ | Downloads | SDL | [×]

segunda-feira, 22 de outubro de 2007

DR Quebra-Cabeça disponível para download !!!

Propaganda é a alma do negócio ! E pensando dessa forma eu criei uma página para um jogo meu, o Quebra-Cabeça.
» DR Quebra-Cabeça 0.1.1


Esta não é a versão mais nova do meu jogo, infelizmente eu perdi parte do meu código e isso foi o que eu consegui recuperar !

Baixe o jogo, se divirta, e depois poste aqui o que você achou !

segunda-feira, 8 de outubro de 2007

Conexão com API C do MySQL

O MySQL é um servidor de banco de dados. Isso significa que ele fica rodando na máquina à espera que uma conexão socket solicite um serviço. Sua API é escrita originalmente em C pela equipe MySQL e depois é transcritas para outras linguagens por outros grupos. É muito comum utilizar o PHP para fazer conexões com o MySQL, mas no meu site a prioridade é C !
Farei uma pequena abordagem da libmysql, até porque também é novidade para mim !

» Post Completo...

  • mysql_init() - Obtem ou inicializa uma estrutura MYSQL.
  • mysql_close() - Fecha uma conexão com o servidor.
  • mysql_real_connect() - Conecta ao servidor MySQL.
  • mysql_errno() - Retorna o número do erro ocorrido recentemente.
  • mysql_error() - Retorna a mensagem do erro ocorrido recentemente.
  • mysql_real_escape_string() - Escapa caracteres especiais em uma string para ser utilizada em uma instrução SQL.
  • mysql_query() - Executa uma consulta SQL especificada com uma string terminada com null.
  • mysql_real_query() - Executa uma consulta SQL especificada como uma string fixa.
  • mysql_insert_id() - Retorna o ID gerado para uma coluna AUTO_INCREMENT pela consulta anterior.
  • mysql_store_result() - Recupera um resultado completo para o cliente.
  • mysql_fetch_fields() - Retorna um vetor de todas as estruturas do campo.
  • mysql_fetch_lengths() - Retorna o tamanho de todas as colunas na linha atual.
  • mysql_num_fields() - Retorna o número de colunas em um conjunto de resultados.
  • mysql_num_rows() - Retorna o número de linhas em um conjunto de resultados.
  • mysql_fetch_row() - Busca o próximo registro no conjunto de resultados.
  • mysql_field_seek() - Coloca o cursor da coluna em uma coluna específica.
  • mysql_free_result() - Libera a memória usada por um conjunto de resultados.
  • mysql_commit() - Faz um commits na transação.
  • mysql_rollback() - Faz um roll back na transação.
Confira a lista completa no manual da MySQL.

*** Exemplo ***
A seguir, estão em destaque algumas das principais linhas de um exemplo que faz uma consulta no banco. O código completo está disponível aqui !

#include <mysql/mysql.h>
#define host "127.0.0.1"
#define user "banco"
#define senha "senha"
#define banco "banco"

MYSQL *sock = NULL;

int main(void){
//--- socket ---//
sock = mysql_init(0);
...
//--- Conexão ---//
mysql_real_connect(sock,host,user,senha,banco,0,NULL,0);
...
consulta();
...
//--- Fechando a conexão ---//
mysql_close(sock);

return 0;
}

void consulta(){
if( mysql_query(sock,"SELECT * FROM `cliente`") ){
printf("falha: %s.",mysql_error(sock));
}else{
//- solicitando resultado da pesquisa
res = mysql_store_result(sock);
if(res){
num_fields = mysql_num_fields(res);
//--- listando dados ---//
while( (row = mysql_fetch_row(res)) ){
lengths = mysql_fetch_lengths(res);
for(i=0; i<num_fields; i++){
printf("%.*s ", (int)lengths[i], row[i]?row[i]:"NULL");
}
printf("\n");
}
mysql_free_result(res);
}else
printf("Erro: %s\n",mysql_error(sock));
}
}


*** Testando ***

$ make
gcc -o mysql_teste mysql_teste.c `mysql_config --cflags --libs`
$ ./mysql_teste
socket... ok.
conexao... ok.
codificacao: latin1
status: Uptime: 17988 Threads: 1 Questions: 377 Slow queries: 0 Opens: 136 Flush tables: 1 Open tables: 18 Queries per second avg: 0.021

linhas: 2
[cod] [nome] [dt_cadastro] [tipo_compra] [em_parcelam] [em_vencim]
1, João Pessoa Filho, 2007-10-07, comum, 0.00, 0.00
2, Maria da Conceição Batista, 2007-10-07, comum, 0.00, 0.00


*** Link's ***
---
Não foi grande coisa, mas é por aí que as coisas funcionam. Em PHP você faria em quantas linhas ?! Com menos de um terço talvez, mas em momento algum eu estive comparando isso.
Em breve, um outro post sobre como tornar esta aplicação visual. E todo este código em c fará mais sentido !

terça-feira, 2 de outubro de 2007

Vídeo Compiz Fusion (Desktop 3D)

Eu poreria escrever um texto enorme sobre o Linux, mas uma imagem vale mais do que mil palavras !


Os efeitos do vídeo acima são de versões em desenvolvimento do Compiz Fusion (o resultado da fusão do Beryl com o Compiz), e foram divulgados em julho.
É bem provável que venha junto com a versão 7.10 do Ubuntu !

---
Esse vídeo é d++ !!!