Thread: [Solved] MySQL and SQLITE
View Single Post
iceeedr
Veteran Member
Join Date: Apr 2017
Location: Brazil
Old 07-05-2021 , 09:12   Re: MySQL and SQLITE
Reply With Quote #3

Quote:
Originally Posted by Natsheh View Post
Try creating the tuples first before initiating any threads and use set_affinity after creaing the tuples.
Same...

Edit: I found where I read the threadqueries issue (in the include of course...), but I really couldn't understand this explanation.

Code:
@note Intuitive programmers will note that this causes problems for
 *       threaded queries. You will have to either force your script to work
 *       under one affinity, or to pack the affinity type into the query data,
 *       check it against the current, then set the new affinity if necessary.
 *       Then, restore the old one for safety.
PHP Code:
#include <amxmodx>
#include <sqlx>
#pragma defclasslib sqlite sqlite

#define PLUGIN  "New Plug-In"
#define VERSION "1.0"
#define AUTHOR  "Author"

#define CREATE "CREATE TABLE IF NOT EXISTS example (steamid varchar(32), name varchar(32));"
#define CREATE2 "CREATE TABLE IF NOT EXISTS example (steamid TEXT, name TEXT);"
#define CREATE3 "CREATE TABLE IF NOT EXISTS stats (steamid TEXT, name TEXT);"

#define SQLITEFILE "SQLITE"
#define SQLITEFILESTATS "SQLITESTATS"

new Handle:g_MySQL
new Handle:g_MySQLITE
new Handle:g_MySQLITESTATS
new QueryError[512]

public 
plugin_init()
{
        
register_plugin(PLUGINVERSIONAUTHOR)

        
g_MySQL SQL_MakeDbTuple(Host,User,Pass,Db)

        
g_MySQLITE SQL_MakeDbTuple(""""""SQLITEFILE)

        
g_MySQLITESTATS SQL_MakeDbTuple(""""""SQLITEFILESTATS)

        
set_task(1.0"InitQueries")
}

public 
InitQueries()
{
        
SQL_SetAffinity("mysql")

        new 
szQuery[3][150]
        
formatex
        
(
                
szQuery[0],
                
charsmax(szQuery[]),
                
CREATE
        
)
        
SQL_ThreadQuery(g_MySQL,"InitialMySQL_Handler",szQuery[0])

        
SQL_SetAffinity("sqlite")

        
formatex
        
(
                
szQuery[1],
                
charsmax(szQuery[]),
                
CREATE2
        
)
        
SQL_ThreadQuery(g_MySQLITE,"InitialSQLITE_Handler"szQuery[1])

        
formatex
        
(
                
szQuery[2],
                
charsmax(szQuery[]),
                
CREATE3
        
)
        
SQL_ThreadQuery(g_MySQLITESTATS,"InitialSQLITE_Handler"szQuery[2])
}

public 
InitialSQLITE_Handler(FailStateHandle:QueryError[], ErrcodeData[], DataSize)
{
        if(
FailState == TQUERY_CONNECT_FAILED)
                
log_amx("Load - Could not connect to SQL database.  [%d] %s"ErrcodeError)
        else if(
FailState == TQUERY_QUERY_FAILED)
        {
                
SQL_GetQueryString(Query,QueryError,charsmax(QueryError))
                
log_amx("Could not execute query ^"%s^"",QueryError)
        }

        if(!
SQL_NumRows(Query))
        {
                
server_print("No Results.")
        }
        else
                
server_print("Created.")

        return 
PLUGIN_HANDLED
}

public 
InitialMySQL_Handler(FailStateHandle:QueryError[], ErrcodeData[], DataSize)
{
        if(
FailState == TQUERY_CONNECT_FAILED)
                
log_amx("Load - Could not connect to SQL database.  [%d] %s"ErrcodeError)
        else if(
FailState == TQUERY_QUERY_FAILED)
        {
                
SQL_GetQueryString(Query,QueryError,charsmax(QueryError))
                
log_amx("Could not execute query ^"%s^"",QueryError)
        }

        if(!
SQL_NumRows(Query))
        {
                
server_print("No Results.")
        }
        else
                
server_print("Created.")

        return 
PLUGIN_HANDLED

Code:
L 07/05/2021 - 10:10:33: Start of error session.
L 07/05/2021 - 10:10:33: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20210705.log")
L 07/05/2021 - 10:10:33: [SQLITE] Invalid info tuple handle: 2
L 07/05/2021 - 10:10:33: [AMXX] Displaying debug trace (plugin "error.amxx", version "1.0")
L 07/05/2021 - 10:10:33: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 07/05/2021 - 10:10:33: [AMXX]    [0] error.sma::InitQueries (line 56)
L 07/05/2021 - 10:10:34: [SQLITE] Invalid query handle: 4
L 07/05/2021 - 10:10:34: [AMXX] Displaying debug trace (plugin "error.amxx", version "1.0")
L 07/05/2021 - 10:10:34: [AMXX] Run time error 10: native error (native "SQL_NumResults")
L 07/05/2021 - 10:10:34: [AMXX]    [0] error.sma::InitialMySQL_Handler (line 97)
__________________


Quote:
Originally Posted by fysiks View Post
Please stop trying to help. You appear to just be posting random stuff. Wait until you actually understand more about AMX Mod X and how the game works.
https://iceeedr.com.br/

Last edited by iceeedr; 07-05-2021 at 09:25.
iceeedr is offline
Send a message via Skype™ to iceeedr