Ir para conteúdo

POWERED BY:

Arquivado

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

fabiom2211

consulta no banco de dados

Recommended Posts

Pessoal eu to com um programa aqui que eu faço uma consulta no banco de dados

e escrevo no arquivo o resultado

só que agora cair numa nova situação

eu faço a consulta no banco de dados e o resultado é vazio

não vem nada como resposta....

Eu quero colocar um tratamento para esse erro...

ou seja, quando ele consultar no banco de dados e não tiver resposta quero escrever como resposta "0000"(zero)

 

Vou postar apenas uma parte a parte mais importante que é a da consulta no banco de dados.

 

 


     mysql_init(&conexao);
     if (mysql_real_connect(&conexao,"localhost","root","","db_graficos",0,NULL,0))
       {
          printf("Conectado com Sucesso!\n");
           if (mysql_query(&conexao,query))
            printf("Erro: %s\n",mysql_error(&conexao));

             else
              {
               resp = mysql_store_result(&conexao);//recebe a consulta
                  if (resp) //se houver consulta
                    {  

                           FILE *arquivo ;
                           arquivo= fopen(nomexml, "w+");

                           if(arquivo != NULL)
                           printf("Arquivo criado com sucesso.");
                           else
                           printf("Nao foi possivel criar o arquivo.");
                           { 
                                       while ((linhas=mysql_fetch_row(resp)) )
                                       {  
                                         {                                                                
                                            fprintf (arquivo," name=\"%s\" ",linhas[0]);
                                            fprintf (arquivo," value=\"%s\" ",linhas[1]);
                                         }                                                         
                                       }

                            }
                       }
                           mysql_free_result(resp);//limpa a vari·vel do resultado: resp
                     }
                  mysql_close(&conexao);
             }   

      else
      {
      printf("Conexao Falhou\n");
      if (mysql_errno(&conexao))
      printf("Erro %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));
      }
  }

 

 

Eu já coloquei algumas condições mais não adiantou...

já coloquei dentro do while a seguinte condição

 


        while ((linhas=mysql_fetch_row(resp)) )
         {  
           {
             if(linhas[0] == NULL)
               {                                                
                fprintf (arquivo," name=\"0000\" ");
                fprintf (arquivo," value=\"0000\" ");
               }else
                  {  fprintf (arquivo," name=\"%s\" ",linhas[0]);
                     fprintf (arquivo," value=\"%s\" ",linhas[1]);
                  }
           }                                                         
         }


 

Já tentei colocar também da seguinte forma...

 

 

.....................
resp = mysql_store_result(&conexao);//recebe a consulta
                  if (resp != NULL) //se houver consulta
....................

 

mais nenhuma conseguir fazer o que eu quero...

 

Att, Fabio Rosa

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://dev.mysql.com/doc/refman/5.1/en/mysql-fetch-row.html

 

 

Retrieves the next row of a result set. When used after mysql_store_result(), mysql_fetch_row() returns NULL when there are no more rows to retrieve.

 

Return Values

 

A MYSQL_ROW structure for the next row. NULL if there are no more rows to retrieve or if an error occurred.

 

 

 

 

Teoricamente, o while já faz a verificação sem necessidade do if.

 

 

 

 

http://dev.mysql.com/doc/refman/5.1/en/mysql-store-result.html

 

 

 

 

 

 

Return Values

 

A MYSQL_RES result structure with the results. NULL (0) if an error occurred.

 

 

 

 

NULL não quer dizer que não existe nenhum registro a partir da consulta. Quer dizer que ocorreu um erro (sem memória, sem servidor, sem conexão...coisas do tipo)

 

 

 

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.