Thursday, April 23, 2009

Projeto Agenda I

Nesta semana iremos escrever um programa C mínimo para uma agenda simples. O arquivo contendo o banco de dados está no skydrive e se chama agenda.db (faça o upload). Salve esse arquivo no mesmo local onde o LCCWIN32 salva os executáveis do seu programa, isto é, o EXECUTÁVEL e o ARQUIVO agenda.db precisam estar na mesma pasta.

Nossa agenda será capaz de guardar nomes, telefones e emails, salvos para consulta posterior, com direito a função de "procura". O programa irá se desenvolver com a minha disponibilidade de tempo.

O código abaixo apenas inicializa o Banco de Dados e faz uma consulta rápida, está longe do nosso objetivo final! Acompanhem as cenas dos próximos capítulos!


#include <stdio.h>
#include <sqlite3.h>

// Função de Callback, mostra os resultados da query
static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
for(i=0; i<argc; i++)
{
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
//--------------------------------------------------------------------------
int main()
{
sqlite3 *db;
char *Error = 0;
int rc;

rc = sqlite3_open("agenda.db", &db);

//rc recebe o valor da função sqlite3_open, se falhar retorna verdadeiro
//e encerramos o programa
if(rc){
fprintf(stderr, "Erro ao abrir banco de dados: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}

//Vamos pegar os valores salvos na tabela de contatos
rc = sqlite3_exec(db, "select * from contatos", callback, 0, &Error);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL erro: %s\n", Error);
sqlite3_free(Error);
}

//fechamos o banco de dados e saímos
sqlite3_close(db);
return 0;
}

No comments: