Ir ao conteúdo
  • Cadastre-se

C++ consulta mysql


Adriano94

Posts recomendados

Então, dei mas umas pesquisadas e percebi que a função mysql_query() sempre vai retornar um valor no caso se foi feito ou nao a query(No caso se houver erro de sintaxe ela Retorna 1 e em caso de sucesso retorna 0), mas não vai informar se o "usuário" foi ou não encontrado, então com mais umas pesquisar verifiquei que apos executar o mysql_query() se houver resultado positivo, a funcao mysql_store_result() armazena o resultado da consulta, e a função mysql_fetch_row() vai nos dar o nome do usuário, ai nos só precisamos verificar com o nome do cliente, usando strcmp(), que informamos e obtemos se existe ou não o usuário, exemplo:     

        //VARIAVEIS ADICIONAIS
	    MYSQL_RES *resp;
	    MYSQL_ROW resget;
	    char resgetBuffer[128];
		
		//ENVIAR CONSULTA DO COMANDO ACIMA
        //SE HOUVER ERRO DE SYNTAX ELE RETORNA ERRO
        //MAS SE HOUVER OU NAO A CONSULTA, ELE NAO VAI IDENTIFICAR ISSO.
        //Perceba que nao usei ! na frente pois erro retorna 1
        if (mysql_query(&Conect, cmdSQL)){
            printf("ERRO!\n",cmdSQL);
            mysql_close(&Conect);
            getchar();
            return 0;
        }else{
            //Obter a resposta da consulta, se existir
            resp = mysql_store_result(&Conect);
            if(resp){
                printf("Resultado da consulta recebida!\n");
                printf("Verificando se usuario existe!\n");
                resget = mysql_fetch_row(resp);
                if(resget != NULL){
                    strcpy(resgetBuffer,resget[0]);
                    if(strcmp(resgetBuffer,cliente) == 0 && strlen(resgetBuffer) > 0)
                        printf("%s encontrado!\n",resgetBuffer);
                } else printf("Cliente nao encontrado!\n");
            }else printf("Resultado da consulta nao recebida!\n");

            //Libera o resultado da consulta
            mysql_free_result(resp);
        }

 

Fonte de consulta: https://www.vivaolinux.com.br/artigo/Usando-MySQL-na-linguagem-C?pagina=4

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

17 minutos atrás, 1freakday disse:

Então, dei mas umas pesquisadas e percebi que a função mysql_query() sempre vai retornar um valor no caso se foi feito ou nao a query(No caso se houver erro de sintaxe ela Retorna 1 e em caso de sucesso retorna 0), mas não vai informar se o "usuário" foi ou não encontrado, então com mais umas pesquisar verifiquei que apos executar o mysql_query() se houver resultado positivo, a funcao mysql_store_result() armazena o resultado da consulta, e a função mysql_fetch_row() vai nos dar o nome do usuário, ai nos só precisamos verificar com o nome do cliente, usando strcmp(), que informamos e obtemos se existe ou não o usuário, exemplo:     


        //VARIAVEIS ADICIONAIS
	    MYSQL_RES *resp;
	    MYSQL_ROW resget;
	    char resgetBuffer[128];
		
		//ENVIAR CONSULTA DO COMANDO ACIMA
        //SE HOUVER ERRO DE SYNTAX ELE RETORNA ERRO
        //MAS SE HOUVER OU NAO A CONSULTA, ELE NAO VAI IDENTIFICAR ISSO.
        //Perceba que nao usei ! na frente pois erro retorna 1
        if (mysql_query(&Conect, cmdSQL)){
            printf("ERRO!\n",cmdSQL);
            mysql_close(&Conect);
            getchar();
            return 0;
        }else{
            //Obter a resposta da consulta, se existir
            resp = mysql_store_result(&Conect);
            if(resp){
                printf("Resultado da consulta recebida!\n");
                printf("Verificando se usuario existe!\n");
                resget = mysql_fetch_row(resp);
                if(resget != NULL){
                    strcpy(resgetBuffer,resget[0]);
                    if(strcmp(resgetBuffer,cliente) == 0 && strlen(resgetBuffer) > 0)
                        printf("%s encontrado!\n",resgetBuffer);
                } else printf("Cliente nao encontrado!\n");
            }else printf("Resultado da consulta nao recebida!\n");

            //Libera o resultado da consulta
            mysql_free_result(resp);
        }

 

Fonte de consulta: https://www.vivaolinux.com.br/artigo/Usando-MySQL-na-linguagem-C?pagina=4

 

Perfeito, muito boa sua explicação, eu poderia ter lido aquele tópico mil vezes e não entenderia. Muito obrigado.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...