SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 02/03/2020, 05:48 PM   #1
-Stranger-
Gangsta
 
-Stranger-'s Avatar
 
Join Date: Mar 2010
Location: TCP/IPv4
Posts: 770
Reputation: 40
Question [Вопросы] MySQL Plugin by BlueG

И прошло более 5 лет и решил я опять поднять свой сервер. Думал что за это время и ООП пришло и хотя-бы pawn был обновлён, но ....

Всем привет.
Начал писать новый мод с нуля и возникли непонятки в работе плагина MySQL от BlueG.
Вопрос 1:
PHP Code:
mysql_tquery(CORE_SQL"SELECT * FROM `OBJECTS`""OnSQLResponse");
public 
OnSQLResponse(type){} 
Далее в этом колбеке используются функции "cache_get_*", например "cache_get_row_count".
Где связь запроса и содержания этих функций? Как я могу быть уверен что в ответ эти функции будут возвращать ответ именно на нужный мне запрос?
Например: Выполняется этот запрос, допустим его ответ придёт через 10 секунд, и в это время выполняется запрос на поиск игрока, который придёт мгновенно и в OnResponse* я буду использовать точно такие-же функции.
Я не понимаю где указание на то, что фуккции "cache_get_*" работают именно с моим запросом а не с другим?
__________________
[Mess with the best, die like the rest]
Помог? - жми на . Тебе один клик, а мне приятно
-Stranger- is offline   Reply With Quote
Old 02/03/2020, 06:17 PM   #2
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: [Вопросы] MySQL Plugin by BlueG

В третьем параметре вы можете указать любой колбек, и каждый ответ обрабатывать отдельно.
А так же вы можете передавать дополнительные параметры для того что бы персонализировать запросы.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is online now   Reply With Quote
Old 02/03/2020, 08:35 PM   #3
-Stranger-
Gangsta
 
-Stranger-'s Avatar
 
Join Date: Mar 2010
Location: TCP/IPv4
Posts: 770
Reputation: 40
Default Re: [Вопросы] MySQL Plugin by BlueG

Хорошо, спрошу иначе...

PHP Code:
mysql_tquery(CORE_SQL"SELECT * FROM `OBJECTS`""OnSQLResponse1");
mysql_tquery(CORE_SQL"SELECT * FROM `GATES`""OnSQLResponse2");

public 
OnSQLResponse1()
{
    new 
row_count;
    
cache_get_row_count(row_count);
    
printf("* Found %d objects, loading ... "row_count);
}

public 
OnSQLResponse2()
{
    new 
row_count;
    
cache_get_row_count(row_count);
    
printf("* Found %d gates, loading ... "row_count);

Название функции "cache_get_row_count()" одинаковое, в неё не передаётся объект\id response sql запроса, как это сделано у нормальных людей, например "cache_get_row_count(response)". Так почему первый "cache_get_row_count()" вернёт кол-во объектов, а второй "cache_get_row_count()" вернёт кол-во ворот.
__________________
[Mess with the best, die like the rest]
Помог? - жми на . Тебе один клик, а мне приятно
-Stranger- is offline   Reply With Quote
Old 03/03/2020, 06:37 AM   #4
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: [Вопросы] MySQL Plugin by BlueG

sa-mp однопоточен и при вызове колбека плагин работает с одним набором данных, при вызове следующего там свой набор данных.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is online now   Reply With Quote
Old 03/03/2020, 12:22 PM   #5
-Stranger-
Gangsta
 
-Stranger-'s Avatar
 
Join Date: Mar 2010
Location: TCP/IPv4
Posts: 770
Reputation: 40
Default Re: [Вопросы] MySQL Plugin by BlueG

Ага, т.е. получается что запросы поступают одним потоком, в плагине обрабатываются разными потоками, какой быстрее обработался тот колбек и вызывается, с нужным набором данных. Если в это время пришёл ответ на другой запрос, то он задерживается до выхода из предыдущего колбека.
При это если мне нужно сохранить данные и обратится к ним вне колбека, попозже, то используем функции cache_save, cache_set_active, cache_delete.

Всё понятно, спасибо. Остальные вопросы отпали сами собой..
__________________
[Mess with the best, die like the rest]
Помог? - жми на . Тебе один клик, а мне приятно
-Stranger- is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
MySQL plugin by BlueG LocMax Scripting Help 1 02/08/2015 02:19 PM
BlueG's MySQL plugin Derexi Server Support 8 22/12/2014 10:15 PM
Help with BlueG's MySQL plugin R39 Pravin Server Support 1 01/10/2014 01:02 PM
[MySQL] From StickenKid's plugin to BlueG's plugin jessejanssen Scripting Help 2 15/06/2014 01:20 AM
[HELP]BlueG's MySQL Plugin R7 [DOG]irinel1996 Scripting Help 0 09/04/2012 07:55 PM


All times are GMT. The time now is 08:19 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.