Originally Posted by Kar
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
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); }
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?
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); }
All my other cache usages are EXACTLY like this ^.
So which one is the issue?
|