Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > Empty Mysql result


Автор: Enelar 1.7.2010, 20:40
Как определить что ответ на вопрос - пуст?
Код

bool data_base::GetInfoAboutPlayer( char *l )
{
  char q[200];
  int n = sprintf(q, "SELECT * FROM 3card.4users WHERE 5login='%s'", l);
  printf("MYSQL QUEUE: %s\n", q);
  if (mysql_real_query(con, q, (unsigned long)strlen(q)))
  {
    printf("MYSQL RESULT: ERROR!!!\n");
    return 0;
  }
  res = mysql_use_result(con);
  if (res)
  { // get something 
    printf("something get\n");
    row = mysql_fetch_row(res);
    ExtractInfo();        
    mysql_free_result(res);
    return 1;
  }
  else
    printf("Nothing get\n");
  return 0;
}

Почему то даже когда ничего вернуть не должно пишет something get и естественно потом мимо памяти.
Я манулы не дочитал?

Автор: Enelar 2.7.2010, 14:26
Видать не дочитал. Конечный код таков.
Код

bool data_base::GetInfoAboutPlayer( char *l )
{
  char q[200];
  int n = sprintf(q, "SELECT * FROM 3card.4users WHERE 5login='%s'", l);
  printf("MYSQL QUEUE: %s\n", q);
  if (mysql_real_query(con, q, (unsigned long)strlen(q)))
  {
    printf("MYSQL RESULT: ERROR!!!\n");
    return 0;
  }
  res = mysql_use_result(con);
  if (res)
  {
    row = mysql_fetch_row(res);
    if (row != NULL)
      ExtractInfo();        
    else
      printf("Empty result\n");
    mysql_free_result(res);
    return 1;
  }
  else
    printf("Cant read result\n");
  return 0;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)