Exemple #1
0
//PUBLIC
bool SQLconnection::query(const char * _q,DBResult &res)
{
	res.freeIfInUse();
	if(alternateBetweenServers)swapNextServer();

	//currentServer = 0;
	//currentServer = nextServer;
	{
		auto r = attemptQuery(_q,res);
		if(r == QUERY_RET_VALUE_GOOD)return true;
		if(r == QUERY_RET_VALUE_QUERY_ERROR)return false;
	}

	/*swapServer();
	{
		auto r = attemptQuery(_q,res);
		if(r == QUERY_RET_VALUE_GOOD)return true;
		if(r == QUERY_RET_VALUE_QUERY_ERROR)return false;
	}

	swapServer();*/
	disconnect();
	connect();
	{
		auto r = attemptQuery(_q,res);
		if(r == QUERY_RET_VALUE_GOOD)return true;
		if(r == QUERY_RET_VALUE_QUERY_ERROR)return false;
	}
	/*swapServer();
	{
		auto r = attemptQuery(_q,res);
		if(r == QUERY_RET_VALUE_GOOD)return true;
		if(r == QUERY_RET_VALUE_QUERY_ERROR)return false;
	}
	swapServer();
*/

	//prevents zero attempts due to both having recent failures.
	/*if(goodRequestsSenseFailure[1] < goodRequestsSenseFailure[0])
	{
		goodRequestsSenseFailure[0] = 0;
	}
	else
	{
		goodRequestsSenseFailure[1] = 0;
	}
*/
	disconnect();
	connect();



	{
		auto r = attemptQuery(_q,res);
		if(r == QUERY_RET_VALUE_GOOD)return true;
		if(r == QUERY_RET_VALUE_QUERY_ERROR)return false;
	}
	/*swapServer();
	{
		auto r = attemptQuery(_q,res);
		if(r == QUERY_RET_VALUE_GOOD)return true;
		if(r == QUERY_RET_VALUE_QUERY_ERROR)return false;
	}
	swapServer();
	*/


	return false;
}