Thread: [Solved] [MySQL] Return function
View Single Post
wilian159
Member
Join Date: Dec 2013
Old 01-09-2022 , 10:24   Re: [MySQL] Return function
Reply With Quote #7

Quote:
Originally Posted by Shadows Adi View Post
Yes, there is a way, using SQL_Execute. HamletEagle explained the difference between this and SQL_ThreadQuery.

No, it won't work, because the callback is executed after the SqlGetUserIndex() function ends. Test it by yourself by adding debug messages.

PHP Code:
new VarTest

public SqlGetUserIndex(id)
{
    
SQL_ThreadQuery(handle"_SqlGetUserIndex""SELECT id FROM users WHERE authid = 'STEAM_XXXXXXXX'")
    
server_print("SqlGetUserIndex() function")

    return 
VarTest
}

public 
_SqlGetUserIndex(fail_stateHandle:queryerror[], error_codedata[], data_size)
{
    
// check fails, etc....

    
if(SQL_NumResults(query))
    {
        
VarTest SQL_ReadResult(xQuery0)
    }
    else
    {
        
VarTest = -1
    
}

    
server_print("_SqlGetUserIndex() function")

if I use 'SQL_Execute' there will be some delays in the game


haven't tested it, would that work?:
PHP Code:
new VarTest[33]

public 
MyFunction(id)
{
    
// Query
    
SqlGetUserIndex(id)

    new 
res SqlReturnQuery(id)
    
    if(
res != -1)
    {
        
// result int
    
}
}

public 
SqlGetUserIndex(id)
{
    
VarTest[id] = -1

    
new data[1]
    
data[0] = id

    SQL_ThreadQuery
(handle"_SqlGetUserIndex""SELECT id FROM users WHERE authid = 'STEAM_XXXXXXXX'"datasizeof(data))
}

public 
_SqlGetUserIndex(fail_stateHandle:queryerror[], error_codedata[], data_size)
{
    
// check fails, etc....

    
new id data[0]

    if(
SQL_NumResults(query))
    {
        
VarTest[id] = SQL_ReadResult(xQuery0)
    }
    else
    {
        
VarTest[id] = -1
    
}

    
SqlReturnQuery(id)
}

public 
SqlReturnQuery(id)
{
    return 
VarTest[id]

__________________
wilian159 is offline