mariadb async query: Difference between revisions
From Onset Developer Wiki
Created page with "{{Info|Function|Server|1.0}} {{Notice|This function is provided by the official MariaDB plugin.}} {{FuncDescription|__EDIT_ME__}} {{FuncSyntax|mariadb_async_query()}} {..." |
No edit summary |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
{{Notice|This function is provided by the official [[MariaDB]] plugin.}} | {{Notice|This function is provided by the official [[MariaDB]] plugin.}} | ||
{{FuncDescription| | {{FuncDescription|Executes a query in different parallel threads. Order of execution cannot be guaranteed. Better use [[mariadb_query]] if you are unsure about it.}} | ||
{{FuncSyntax|mariadb_async_query()}} | {{FuncSyntax|mariadb_async_query(handle, query_str [, callback_func, callback_args...])}} | ||
{{FuncParameters}} | {{FuncParameters}} | ||
{{ | {{FuncParam|handle|Connection handle.}} | ||
{{FuncParam|query_str |The query to be executed.}} | |||
{{FuncParamOptional|callback_func|The function that will be called when the query was executed.}} | |||
{{FuncParamOptional|callback_args|Multiple arguments to pass to the callback_func.}} | |||
{{FuncReturnValue| | {{FuncReturnValue|Returns '''true''' if the query was successfully queued.}} | ||
== Example == | == Example == | ||
<syntaxhighlight lang="Lua"> | |||
function GetCurrentPlayTime(player) | |||
CreateTimer(function(player) | |||
for k, v in pairs (GetAllPlayers()) do | |||
if GetAllPlayers() == true then | |||
local query = mariadb_prepare(sql, "SELECT * FROM accounts WHERE id = '?';", | |||
PlayerData[v].accountid) | |||
mariadb_async_query(sql, query, GetPlayerTime, v) | |||
end | |||
end | |||
end, 15000, player) | |||
end | |||
AddEvent("OnPackageStart", GetCurrentPlayTime) | |||
function GetPlayerTime(player) | |||
local result = mariadb_get_assoc(1) | |||
local playtime = math.tointeger(result['time']) -- total time played on the server without session time. | |||
PlayerData[player].time = math.floor(PlayerData[player].time + (GetTimeSeconds() - PlayerData[player].play_time)) -- session play time. | |||
PlayerData[player].play_time = GetTimeSeconds() | |||
return PlayerData[player].time + playtime -- returns the total play time on the server. | |||
end | |||
</syntaxhighlight> | |||
{{RelatedFunctions}} | {{RelatedFunctions}} | ||
{{MariaDBFunctions}} |
Latest revision as of 18:25, 30 August 2020
Description
Executes a query in different parallel threads. Order of execution cannot be guaranteed. Better use mariadb_query if you are unsure about it.
Syntax
mariadb_async_query(handle, query_str [, callback_func, callback_args...])
Parameters
- handle
Connection handle. - query_str
The query to be executed. - callback_func (optional)
The function that will be called when the query was executed. - callback_args (optional)
Multiple arguments to pass to the callback_func.
Return Value
- Returns true if the query was successfully queued.
Example
function GetCurrentPlayTime(player)
CreateTimer(function(player)
for k, v in pairs (GetAllPlayers()) do
if GetAllPlayers() == true then
local query = mariadb_prepare(sql, "SELECT * FROM accounts WHERE id = '?';",
PlayerData[v].accountid)
mariadb_async_query(sql, query, GetPlayerTime, v)
end
end
end, 15000, player)
end
AddEvent("OnPackageStart", GetCurrentPlayTime)
function GetPlayerTime(player)
local result = mariadb_get_assoc(1)
local playtime = math.tointeger(result['time']) -- total time played on the server without session time.
PlayerData[player].time = math.floor(PlayerData[player].time + (GetTimeSeconds() - PlayerData[player].play_time)) -- session play time.
PlayerData[player].play_time = GetTimeSeconds()
return PlayerData[player].time + playtime -- returns the total play time on the server.
end
See also
- OnQueryError
- mariadb_log
- mariadb_connect
- mariadb_connect_file
- mariadb_close
- mariadb_unprocessed_queries
- mariadb_async_query
- mariadb_query
- mariadb_await_query
- mariadb_query_file
- mariadb_await_query_file
- mariadb_errno
- mariadb_error
- mariadb_escape_string
- mariadb_prepare
- mariadb_set_charset
- mariadb_get_charset
- mariadb_stat
- mariadb_get_row_count
- mariadb_get_field_count
- mariadb_get_result_count
- mariadb_get_field_name
- mariadb_set_result
- mariadb_get_value_index
- mariadb_get_value_index_int
- mariadb_get_value_index_float
- mariadb_get_value_name
- mariadb_get_value_name_int
- mariadb_get_value_name_float
- mariadb_save_result
- mariadb_delete_result
- mariadb_set_active_result
- mariadb_unset_active_result
- mariadb_is_any_result_active
- mariadb_is_valid_result
- mariadb_get_affected_rows
- mariadb_get_warning_count
- mariadb_get_insert_id
- mariadb_get_query_exec_time
- mariadb_get_query_string
- mariadb_get_row
- mariadb_get_assoc