PDA

Просмотр полной версии : [Вопрос] "Тег" Result в старых версиях MySQL



StevenH
02.06.2017, 23:07
Здравствуйте, в более старых версиях MySQL, можно было отправлять запрос в базу (например в каком либо диалоге OnDialogResponse), и сразу же там получать ответ, пример (код взят с паблик-мода):



new bankname[50];
format(query,sizeof(query),"SELECT `name` FROM `bank` WHERE `ownerid` = '%d'",pData[playerid][pMysqlID]);
new Result:r = sql_query(snow, query, QUERY_CACHED);
sql_get_field(r, 0, bankname);


По функционалу можно догадаться, что выводятся счета из базы..

Я использую последнюю версию MySQL R41-2, и вопрос, можно ли так делать в этой версии? Ибо вариант, который я знаю в данный момент, это отправлять запрос, отправлять ответ в паблик и там это уже все производить...

Или же, как лучше это все реализовать, ну и тд. Нужны советы, а так же ответ на поставленный вопрос..

Заранее спасибо.....

whale
03.06.2017, 01:36
Надеюсь, что я правильно тебя понял.


new
Cache:result = mysql_query(ID MySQL подключения, "Запрос", true), rows;

cache_get_row_count(rows);
/*
Твой код, который ты будешь выполнять после получения информации.
*/
cache_delete(result); // Удаляешь кэш

StevenH
03.06.2017, 11:17
Надеюсь, что я правильно тебя понял.


new
Cache:result = mysql_query(ID MySQL подключения, "Запрос", true), rows;

cache_get_row_count(rows);
/*
Твой код, который ты будешь выполнять после получения информации.
*/
cache_delete(result); // Удаляешь кэш

Разве это сработает в самой новой версии mysql? Буду дома - проверю

Long-
03.06.2017, 12:43
Можно конечно.
Отправка запроса и отправляет действие в паблик - многопоточность.
Ты же хочешь юзать однопоточный запрос,однопоточные запросы вроде как будут обрабатываться по очереди, а многопоточный сразу все одновременно(будь то их сколько угодно в определенном участке кода).

В новых версиях mysql эту возможность не убрали, да и не собираются, ведь в некоторых случаях использовать именно его и нужно.
Подправлю вариант выше:


static
Cache:Result;

Result = mysql_query(mysql_connect_ID, "Запрос", true);

if(!cache_num_rows())
return 0;

/*Твой код*/

cache_delete(Result);

DeimoS
03.06.2017, 17:35
Разве это сработает в самой новой версии mysql? Буду дома - проверю

Можно было ведь просто открыть инклуд и посмотреть подходящие функции, если лень открывать GitHub и смотреть лог изменений.