Agenda completa em C com SQL

Publicado por André (última atualização em 17/11/2010)

[ Hits: 8.135 ]

Homepage: http://127.0.0.1

Download 4818.main.c




Agenda completa:

Inserção
Remoção
Busca
Listagem

Escrita em C com uso de SQL (SGBD MySQL).

Criada por mim, os créditos devem ser mantidos, código aberto para estudo.

* Open source

  



Esconder código-fonte

#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>

/* Algumas variáveis globais */
int opc;
int opc2;
int sexo3;
char buff[256];
char del[256];
char sexo [5];
char nome[150];
char nomeDel[150];

   
   int cadastra();
   MYSQL conexao;
   
int main()
{
   

   mysql_init(&conexao);
   if(mysql_real_connect(&conexao, "localhost","root", 
   "root", "agenda",  0, NULL, 0))
   {
      printf("Conectado com sucesso!\n");
      cadastra();
      mysql_close(&conexao);
   }
   else
   {
      printf("Houve uma falha ao tentar conectar! \n");
      printf("Erro: %d %s\n",mysql_errno(&conexao), 
      mysql_error(&conexao));
   }
   return (0);
}

int cadastra()
{
   printf("\n\n\t\tMenu:\n");
   printf("\t\t--------------\n");
   printf("\t\t[1] Inserir\n"
   "\t\t[2] Buscar\n"
   "\t\t[3] Listar\n"
   "\t\t[4] Remover\n"
   "\t\t[5] Creditos\n"
   "\t\t[0] Sair\n"
   "\t\t\t>> ");

   scanf("%d",&opc);

   // "limpa" o buff
   //memset(buff, 0x0, sizeof(buff));
   switch(opc)
   {
      case 0:
         getchar();
      break;

      case 1:
         /* Cadastro */
         printf("Nome: ");
         scanf("%s",&nome);
         printf("Sexo: (M/F) ");
         scanf("%s",&sexo);
         
sprintf(buff, "INSERT INTO aprendendo(nome, sexo) values('%s','%s');", nome, sexo); 
mysql_query(&conexao,buff);
         
         printf("O contato %s foi cadastrado com sucesso!\n",nome);

      break;

      case 2:
         /* Buscar */
         printf("Digite o nome: ");
         scanf("%s",&nome);
         printf("Resultados para '%s':\n",nome);
         sprintf(buff, "SELECT * from aprendendo where nome = '%s';", nome);
         mysql_query(&conexao,buff);
         MYSQL_RES * rj = mysql_store_result(&conexao); // Pega os dados retornados

   MYSQL_ROW rol;

   while (rol = mysql_fetch_row(rj)) // Pega uma linha de resultado
   {   
      printf("ID : %s\n", rol[0]);
      printf("Nome : %s\n", rol[1]);
      printf("Sexo : %s\n", rol[2]);
      printf("----------------\n");
      
   }

   mysql_free_result(rj); // Limpa a memória utilizada
               
            break;
            
         
      break;
   
      case 3:
         /* Listar */
         printf("Selecione um filtro:\n ");
         printf("\t\t[1] Listar tudo\n");
         printf("\t\t[2] Filtrar por sexo\n");
         printf("\t\t\t>> ");
         scanf("%d",&opc2);
         switch(opc2)
         {
            case 1:
               /* Lista tudo */
               printf("\t\tListando tudos cadastros:\n");
               printf("\t\t-----------------------\n");
                if (mysql_query(&conexao, "SELECT * FROM aprendendo") != 0)
   {   
      printf("Erro de SQL: %s!\n", mysql_error(&conexao));

      exit(0);
   }

   MYSQL_RES * rs = mysql_store_result(&conexao); // Pega os dados retornados

   MYSQL_ROW row;

   while (row = mysql_fetch_row(rs)) // Pega uma linha de resultado
   {   
      printf("ID : %s\n", row[0]);
      printf("Nome : %s\n", row[1]);
      printf("Sexo : %s\n", row[2]);
      printf("----------------\n");
      
   }

   mysql_free_result(rs); // Limpa a memória utilizada
               
            break;
            
            case 2: 
               /* Filtra por sexo */
               printf("Selecione um sexo:\n ");
               printf("\t\t[1]  Masculino  (M)\n");
               printf("\t\t[2]  Feminino   (F)");
               printf("\n\t\t\t>> ");
               
               scanf("%d",&sexo3);
               
               switch(sexo3)
               {
                  case 1:
                     if (mysql_query(&conexao, "SELECT * from aprendendo where sexo = 'M';") != 0)
                      {   
      printf("Erro de SQL: %s!\n", mysql_error(&conexao));

      exit(0);
   }

   MYSQL_RES * rs = mysql_store_result(&conexao); // Pega os dados retornados

   MYSQL_ROW row;

   while (row = mysql_fetch_row(rs)) // Pega uma linha de resultado
   {   
      printf("ID : %s\n", row[0]);
      printf("Nome : %s\n", row[1]);
      printf("Sexo : %s\n", row[2]);
      printf("----------------\n");
      
   }
         mysql_free_result(rs); // Limpa a memória utilizada
         
                  break;
                  
                  case 2:
                  
                     if (mysql_query(&conexao, "SELECT * from aprendendo where sexo = 'F';") != 0)
                      {   
      printf("Erro de SQL: %s!\n", mysql_error(&conexao));

      exit(0);
   }

   MYSQL_RES * rd = mysql_store_result(&conexao); // Pega os dados retornados

   MYSQL_ROW lol;

   while (lol = mysql_fetch_row(rd)) // Pega uma linha de resultado
   {   
      printf("ID : %s\n", lol[0]);
      printf("Nome : %s\n", lol[1]);
      printf("Sexo : %s\n", lol[2]);
      printf("----------------\n");
      
   }
         mysql_free_result(rd); // Limpa a memória utilizada
                  break;
                  
                  default:
               /* Opção inválida */
               printf("Opcao invalida! \n");
               return EXIT_FAILURE;
            }
            break;
               
               break;
               
            default:
               /* Opção inválida */
               printf("Opcao invalida! \n");
               return EXIT_FAILURE;
            break;
         }
               
         
      break;
      
      case 4:  
         printf("Digite o nome a ser removido: ");
         scanf("%s",&nomeDel);
         printf("Deletando o cadastro: '%s'...\n",nomeDel);
         sprintf(del, "DELETE  from aprendendo where nome = '%s';", nomeDel);
         mysql_query(&conexao,del);
         printf("O cadastro '%s' foi deletado com sucesso!\n",nomeDel);
               
      break;

   case 5:
         printf("\t\t\t\n\nCoded by  AndreZc\n");
         printf("Andre S. Rosa Junior\n");
         printf("Mail: andre.rosa36 at gmail ");
         
         break;
         
      default:
         printf("Opcao invalida! \n");
         return EXIT_FAILURE;
      break;
      }
      
   return (0);
}

Scripts recomendados

2° mod do CGI

Árvore AVL, usando arquivos para armazenamento de dados

Rotina para controle de portas paralelas em C. (biblioteca LP.h)

Tabela Hash feita em C

Jogo Final Fight - Haggar (com gráficos)


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts