16.08.2015, 18:16
Okay but I only asked for that because I use cache_is_valid before EVERY single cache_delete except ONE.
and the code goes like this
There must always be a saved cache, so I'm just wondering why the hell would that return a warning.
Or maybe I'm miss understanding my other cache_deletes... is there only cache when rows are returned? or is it created nevertheless when you query something?
All my other cache usages are EXACTLY like this ^.
So which one is the issue?
and the code goes like this
pawn Код:
format(gQuery, sizeof(gQuery), "SELECT * FROM `Groups` WHERE `Groupid` = %d LIMIT 0,1", groupid);
mysql_tquery(mysqlConnHandle, gQuery, "Thread_OnGetGroupMemberData", "iii", playerid, groupid, pQueryQueue[playerid]);
THREAD:OnGetGroupMemberData(playerid, groupid, queryQueue)
{
if(cache_get_row_count() > 0) {
new Cache:cacheID = cache_save();
format(gQuery, sizeof(gQuery), "SELECT `Username`, `pGroupRank` FROM `Accounts` WHERE `pGroupID` = %d ORDER BY `pLastLoginTimestamp` DESC", groupid);
mysql_tquery(mysqlConnHandle, gQuery, "Thread_OnListGroupMembers", "iiii", playerid, groupid, queryQueue, _:cacheID);
}
else SendClientMessage(playerid, WHITE, "Invalid Group ID!");
return 1;
}
THREAD:OnListGroupMembers(playerid, groupid, queryQueue, Cache:cacheID)
{
if(pQueryQueue[playerid] != queryQueue) return 1;
new Cache:curCacheID = cache_save(), row, Username[MAX_PLAYER_NAME], groupRank,
gRankNames[MAX_GROUP_RANK + 1][MAX_GROUP_RANK_LEN], groupName[MAX_GROUP_NAME_LEN], title[64], groupColour, groupMemCount = 0,
groupMemLoaded = 0, gMemStr[2048+1], id, next = 0;
if(cache_is_valid(cacheID)) {
cache_set_active(cacheID);
}
cache_get_row(0, 1, groupName, mysqlConnHandle, MAX_GROUP_NAME_LEN);
cache_get_row(0, 2, gRankNames[0], mysqlConnHandle, MAX_GROUP_RANK_LEN);
cache_get_row(0, 3, gRankNames[1], mysqlConnHandle, MAX_GROUP_RANK_LEN);
cache_get_row(0, 4, gRankNames[2], mysqlConnHandle, MAX_GROUP_RANK_LEN);
cache_get_row(0, 5, gRankNames[3], mysqlConnHandle, MAX_GROUP_RANK_LEN);
cache_get_row(0, 6, gRankNames[4], mysqlConnHandle, MAX_GROUP_RANK_LEN);
cache_get_row(0, 7, gRankNames[5], mysqlConnHandle, MAX_GROUP_RANK_LEN);
cache_get_row(0, 8, gRankNames[6], mysqlConnHandle, MAX_GROUP_RANK_LEN);
groupColour = cache_get_row_int(0, 11, mysqlConnHandle);
cache_delete(cacheID);
if(cache_is_valid(curCacheID)) {
cache_set_active(curCacheID);
}
Or maybe I'm miss understanding my other cache_deletes... is there only cache when rows are returned? or is it created nevertheless when you query something?
pawn Код:
new Cache:cacheID = mysql_query(mysqlConnHandle, gQuery);
if(cache_is_valid(cacheID)) {
if(cache_get_row_count()) {
cache_get_row(0, 0, groupRankName, mysqlConnHandle, MAX_GROUP_RANK_LEN);
}
cache_delete(cacheID);
}
So which one is the issue?