Я создал очень простой класс mysql в c +, но когда происходит сбой mysql, индексы таблиц повреждаются, и все мои программы на c ++ тоже аварийно завершают работу, потому что кажется, что они не могут распознать поврежденную таблицу и позволяют мне обрабатыватьпроблема ..
Q_RES = mysql_real_query(MY_mysql, tmp_query.c_str(), (unsigned int) tmp_query.size());
if (Q_RES != 0) {
if (Q_RES == CR_COMMANDS_OUT_OF_SYNC) cout << "errorquery : CR_COMMANDS_OUT_OF_SYNC " << endl;
if (Q_RES == CR_SERVER_GONE_ERROR) cout << "errorquery : CR_SERVER_GONE_ERROR " << endl;
if (Q_RES == CR_SERVER_LOST) cout << "errorquery : CR_SERVER_LOST " << endl;
LAST_ERROR = mysql_error(MY_mysql);
if (n_retrycount < n_retry_limit) { // RETRY!
n_retrycount++;
sleep(1);
cout << "SLEEP - query retry! " << endl;
ping();
return select_sql(tmp_query);
}
return false;
}
MY_result = mysql_store_result(MY_mysql);
B_stored_results = true;
cout << "b8" << endl;
LAST_affected_rows = (mysql_num_rows(MY_result) + 1); // coult return -1
cout << "b8-1" << endl;
программа завершается с "ошибкой сегментации" после выполнения "b8" и перед "b8-1", Q_RES не имеет проблемы, даже если таблица повреждена .. я быхотел бы знать, если есть способ распознать, что у таблицы есть проблемы, и тогда я могу запустить восстановление MySQL или проверку MySQL ...
спасибо, Франческо