AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   SQLx Problem (https://forums.alliedmods.net/showthread.php?t=251972)

skitaila03 11-23-2014 06:51

SQLx Problem
 
Hello AM,
I have a problem with my sqlx code for a shop , my server crash after 1-2 minutes with segmentation fault or i recive blank console , thank you.
PS: Sry for RIP english..

Here is code...
Code:

public MySql_Init()
{
        g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db);
 

        new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error));
        if(SqlConnection == Empty_Handle)
            set_fail_state(g_Error);
     
        new Handle:Queries;
        Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS shop (authid varchar(32), ip varchar(32),name varchar(32),money INT(11))");

        if(!SQL_Execute(Queries))
        {
            SQL_QueryError(Queries,g_Error,charsmax(g_Error));
            set_fail_state(g_Error);
        }
   
        SQL_FreeHandle(Queries);
        SQL_FreeHandle(SqlConnection);
}

public Load_MySql(id)
{
      new Data[1], szTemp[512];
        Data[0] = id;

        #if defined SAVE_METHOD_NICK
        formatex(szTemp,charsmax(szTemp),"SELECT * FROM `shop` WHERE (`shop`.`name` = '%s')", g_iAuth[id]);
    #endif
    #if defined SAVE_METHOD_IP
        formatex(szTemp,charsmax(szTemp),"SELECT * FROM `shop` WHERE (`shop`.`ip` = '%s')", g_iAuthIP[id]);
    #endif
    #if defined SAVE_METHOD_ID
        formatex(szTemp,charsmax(szTemp),"SELECT * FROM `shop` WHERE (`shop`.`authid` = '%s')", g_iAuthID[id]);
    #endif
   

        SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1);
}

public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
        if(FailState == TQUERY_CONNECT_FAILED)
        {
            log_amx("Load - Could not connect to SQL database.  [%d] %s", Errcode, Error);
        }
        else if(FailState == TQUERY_QUERY_FAILED)
        {
                log_amx("Load Query failed. [%d] %s", Errcode, Error);
        }

        new id;
        id = Data[0];
   
        if(SQL_NumResults(Query) < 1)
        {
            #if defined SAVE_METHOD_NICK
                if (equal(g_iAuth[id],"ID_PENDING"))
                        return PLUGIN_HANDLED;
        #endif
        #if defined SAVE_METHOD_IP
            if (equal(g_iAuthIP[id],"IP_PENDING"))
                        return PLUGIN_HANDLED;
        #endif
        #if defined SAVE_METHOD_ID
                if (equal(g_iAuthID[id],"ID_PENDING"))
                        return PLUGIN_HANDLED;
        #endif

           
            new szTemp[512];
       
            #if defined SAVE_METHOD_NICK
            formatex(szTemp,charsmax(szTemp),"INSERT INTO `shop` ( `name` , `money`)VALUES ('%s','0');", g_iAuth[id]);
        #endif
        #if defined SAVE_METHOD_IP
            formatex(szTemp,charsmax(szTemp),"INSERT INTO `shop` ( `ip` , `money`)VALUES ('%s','0');", g_iAuthIP[id]);
        #endif
        #if defined SAVE_METHOD_ID
            formatex(szTemp,charsmax(szTemp),"INSERT INTO `shop` ( `authid` , `money`)VALUES ('%s','0');", g_iAuthID[id]);
        #endif

                SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp);
        }
        else  g_iPoints[id]        = SQL_ReadResult(Query, 1);
       
   
        return PLUGIN_HANDLED;
}

public Save_MySql(id)
{
        new szTemp[512];
   
        #if defined SAVE_METHOD_NICK
        formatex(szTemp,charsmax(szTemp),"UPDATE `shop` SET `money` = '%i' WHERE `shop`.`name` = '%s';",g_iPoints[id], g_iAuth[id]);
    #endif
    #if defined SAVE_METHOD_IP
        formatex(szTemp,charsmax(szTemp),"UPDATE `shop` SET `money` = '%i' WHERE `shop`.`ip` = '%s';",g_iPoints[id], g_iAuthIP[id]);
    #endif
    #if defined SAVE_METHOD_ID
        formatex(szTemp,charsmax(szTemp),"UPDATE `shop` SET `money` = '%i' WHERE `shop`.`authid` = '%s';",g_iPoints[id], g_iAuthID[id]);
    #endif

        SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp);
}

public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
        SQL_FreeHandle(Query);
   
        return PLUGIN_HANDLED;
}



All times are GMT -4. The time now is 17:31.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.