Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FreedFelipe

My SQL Com C++

Recommended Posts

Bom dia galera!

 

 

Por gentileza, estou aprendendo a utilizar essa linguagem, porem to tendo apanhando pra fazer um SQL.

 

Acredito que o problema não seja no MySql, mas eu que não estou sabendo fazer na linguagem do C++.

 

Principal dúvida: Como realizar a concatenação das váriaveis para inserir no Query da SQL?

 

 

Segue o código:

 

#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <mysql/mysql.h>

using namespace std;

void insert()
{
     int matricula;
     char nome[50], endereco[50], cidade[50], cep[15], uf[2];
     
     
    cout << "\n Digite a Matricula: ";
    cin >> matricula;
    //strcat(Sql,matricula);
    //strcat(Sql,"','"); 
    
    cout << "\n Digite o nome do funcionario: ";
    cin.getline(nome,50);
    
    
    cout << "\n Digite o endereco: ";
    cin.getline (endereco,50);
    
    
    cout << "\n Digite a cidade: ";
    cin.getline(cidade,50);
    
    
    cout << "\n Digite o CEP: ";
    cin.getline (cep,15);
    
    
    cout << "\n Digite a UF: ";
    cin.getline(uf,2);
    
          
    
    MYSQL conexao;
    mysql_init(&conexao);
    if ( mysql_real_connect(&conexao, "localhost", "root", "root", "empresa", 0, NULL, 0) )
    {
       printf("\nConexao ao banco realizada com sucesso!\n");
       
       //mysql_query(&conexao, "insert into cliente(matricula, nome, endereco, cidade, cep, uf) values(" .+. matricula .+.",'".+. nome .+."','".+. endereco .+."','".+. cep .+."','".+. uf .+."')";
        
        char Sql[400]="Insert into cliente(matricula,nome,endereco,cidade,uf,cep) values(";
        char nvariavel[200]="1234,'";
        
        strcat(Sql,nome);
        strcat(Sql,"','");
    
        strcat(Sql,endereco);
        strcat(Sql,"','");
        
        strcat(Sql,cidade);
        strcat(Sql,"','");

        strcat(Sql,cep);
        strcat(Sql,"','");
        
        strcat(Sql,uf);
        strcat(Sql,"','");
        
        
        printf("\n\n\ Registro salvo com sucesso!");
       mysql_close(&conexao);
    }
    else
    {
        printf("Falha de conexao\n");
        printf("Erro %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));
    }
}        

int main()
{
   int opcao;
   
   cout << "\n Digite a opcao desejada: \n1 - Cadastrar\n2 - Pesquisar\n3 - Apagar\n\n";
   cin >> opcao;
   
   if (opcao == 1)
   {
     insert();
   }
   
   if (opcao == 2)
   {
     cout << "\nEm desenvolvimento";
   }
   
   if (opcao == 3)
   {
     cout << "\nEm desenvolvimento";
   }
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

 

Desde já agradeço a atenção de todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oq esta dando de errado amigo.

tente fazer com a classe string do C++

usando o Append

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está em C++. Use strings (classe) e não array de char (tipo primitivo).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom galera....

 

 

Em desenvolvimento com um amigo da facu, chegamos a tal solução do problema..... Não foi bem o que o professor pediu ... mas tah valendoO:

 

#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <mysql/mysql.h>


using namespace std;
char nome[50], endereco[50], cidade[50], cep[15], uf[3];
char nvariavel[20];
int matricula,ret;
void insert()
{
    
     
     char Sql[400]="Insert into cliente(matricula,nome,endereco,cidade,cep,uf) values(";
          
    cout <<"Digite a Matricula: ";
   cin>>matricula;
    cout <<"\nDigite o nome do funcionario: ";
    cin.getline(nome,50);
    cin.getline(nome,50);
    
    
    cout <<"\nDigite o endereco:";
    cin.getline(endereco,50);
  
    
    cout <<"\nDigite a cidade: ";
    cin.getline(cidade,50);
    
    
    cout <<"\nDigite o CEP: ";
    cin.getline(cep,15);
    
    
    cout <<"\nDigite a UF: ";
    cin.getline(uf,3);
    
          
    
    MYSQL conexao;
    mysql_init(&conexao);
    if ( mysql_real_connect(&conexao, "localhost", "root", "root", "empresa", 0, NULL, 0) )
    {
       printf("\nConexao ao banco realizada com sucesso!\n");
       
        
        sprintf(nvariavel,"%d",matricula);    
       
        strcat(Sql,nvariavel);
        strcat(Sql,",'");
        
        strcat(Sql,nome);
        strcat(Sql,"','");
    
        strcat(Sql,endereco);
        strcat(Sql,"','");
        
        strcat(Sql,cidade);
        strcat(Sql,"','");

        strcat(Sql,cep);
        strcat(Sql,"','");
        
        strcat(Sql,uf);
        strcat(Sql,"');");
        
        mysql_query(&conexao,Sql);
        
        printf("\n\n\ Registro salvo com sucesso!\n\n");
        mysql_close(&conexao);
    }
    else
    {
        printf("Falha de conexao\n");
        printf("Erro %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));
    }
}        
void update()
{
     int opc;
     char nCampo[100];
     char novo[50];
     char usql[400]="Update cliente set ";
     cout<<"Digite o numero da matricula a ser alterada: ";
     cin>>matricula;
     sprintf(nvariavel,"%d",matricula);
   
     cout<<"Selecione qual campo deseja alterar:\n";
     cout<<"1 - Nome\n";
     cout<<"2 - Endereco\n";
     cout<<"3 - Cidade\n";
     cout<<"4 - UF\n";
     cout<<"5 - CEP\n";
     cin>>opc;
     switch(opc){
                 case 1:
                      sprintf(nCampo,"%s","nome='");
                      break;
                 case 2:
                      sprintf(nCampo,"%s","endereco='");
                      break;
                 case 3:
                      sprintf(nCampo,"%s","cidade='");
                      break;
                 case 4:
                      sprintf(nCampo,"%s","uf='");
                      break;
                 case 5:
                      sprintf(nCampo,"%s","cep='");
                      break;
                 }
     strcat(usql,nCampo);
     cout<<"\n\nDigite o novo valor:";
     cin.getline(novo,50);
     cin.getline(novo,50);    
     strcat(usql,novo);
     strcat(usql,"' where matricula=");
     strcat(usql,nvariavel);
     strcat(usql,";");
     MYSQL conexao;
     mysql_init(&conexao);
     if ( mysql_real_connect(&conexao, "localhost", "root", "root", "empresa", 0, NULL, 0) )
     {
     mysql_query(&conexao,usql);
        
     printf("\n\n\ Registro salvo com sucesso!\n\n");
     mysql_close(&conexao);
     }
     else
     {
        printf("Falha de conexao\n");
        printf("Erro %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));
     }
 }
void select()
{
     int opc,conta;
     char nCampo[100],nValor[100];
     char sSql[400]="Select * from cliente where ";
     MYSQL conexao;
     MYSQL_RES *resp;
     MYSQL_ROW linhas;
     MYSQL_FIELD *campos;
     cout<<"Qual o campo do criterio de busca: \n";
     cout<<"1 - Nome\n";
     cout<<"2 - Endereco\n";
     cout<<"3 - Cidade\n";
     cout<<"4 - UF\n";
     cout<<"5 - CEP\n";
     cin>>opc;
     switch(opc){
                 case 1:
                      sprintf(nCampo,"%s","nome='");
                      break;
                 case 2:
                      sprintf(nCampo,"%s","endereco='");
                      break;
                 case 3:
                      sprintf(nCampo,"%s","cidade='");
                      break;
                 case 4:
                      sprintf(nCampo,"%s","uf='");
                      break;
                 case 5:
                      sprintf(nCampo,"%s","cep='");
                      break;
                 }    
     strcat(sSql,nCampo);
     cout<<"Digite o valor a ser procurado: ";                                        
     cin.getline(nValor,100);
     cin.getline(nValor,100);
     strcat(sSql,nValor);
     strcat(sSql,"';");
     cout<<sSql;
     mysql_init(&conexao);
     if ( mysql_real_connect(&conexao, "localhost", "root", "root", "empresa", 0, NULL, 0) )
     {
     mysql_query(&conexao,sSql);
     resp=mysql_store_result(&conexao);//recebe a consulta
     cout<<"\n\n\n";
     if (resp) //se houver consulta
        {
           //passa os dados dos campos para a variável campos
           //escreve na tela os nomes dos campos dando
           //um tab somente
           campos = mysql_fetch_fields(resp);
           for (conta=0;conta<mysql_num_fields(resp);conta++) {
              printf("%s",(campos[conta]).name);
              if (mysql_num_fields(resp)>1)
                  printf("\t");
              }
         
              printf("\n");   

              //enquanto retonrnar registros, conta até o
              //número de colunas que a tabela tem e escreve na
              //tela com um tab, depois pula a linha e tenta
              //pegar outro registro
              while ((linhas=mysql_fetch_row(resp)) != NULL)
              {
                 for (conta=0;conta<mysql_num_fields(resp);conta++)
                    printf("%s\t",linhas[conta]);
                 printf("\n");
              }
          }
          mysql_free_result(resp);//limpa a variável do resultado: resp
     mysql_close(&conexao);
     }
     else
     {
        printf("Falha de conexao\n");
        printf("Erro %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));
     }
 }
void fdelete()
{
     int opc;
     char nCampo[100];
     char novo[50];
     char usql[400]="delete from cliente where matricula=";
     cout<<"Digite o numero da matricula a ser deletada: ";
     cin>>matricula;
     sprintf(nvariavel,"%d",matricula);
     strcat(usql,nvariavel);
     strcat(usql,";");
     
     MYSQL conexao;
     mysql_init(&conexao);
     if ( mysql_real_connect(&conexao, "localhost", "root", "root", "empresa", 0, NULL, 0) )
     {
     mysql_query(&conexao,usql);
        
     printf("\n\n\ Registro deletado com sucesso!\n\n");
     mysql_close(&conexao);
     }
     else
     {
        printf("Falha de conexao\n");
        printf("Erro %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));
     }
 }
int main()
{
   int opcao;
   
   cout << "\n Digite a opcao desejada: \n1 - Cadastrar\n2 - Editar\n3 - Pesquisar\n4 - Deletar\n\n";
   cin >> opcao;
   switch(opcao)
   {
   case 1:
     insert();
     system("PAUSE");
     break;
   case 2:
     update();
     system("PAUSE");
     break;
   case 3:
     select();
    system("PAUSE"); 
    break;
   case 4:
     fdelete();
     system("PAUSE");
     break;
   }
    system("CLS");
    main();        
    
    return EXIT_SUCCESS;
}

 

 

Agradeço a atenção de todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.