1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Help Принцип работы с бд

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Kirill-782, 21 фев 2018.

  1. Kirill-782 Гуру

    Сообщения:
    109
    Спасибы:
    5
    Сборка бота GHost:
    Ghost ++17.1
    Дата начала использования бота:
    00.00.0000
    Как в GHost работать с MySQL или SQL lite

    Ну разберу на примере банов ( получение и добавление)
    Код:
    m_PairedBanAdds.push_back( PairedBanAdd( Whisper ? User : string( ), m_GHost->m_DB->ThreadedBanAdd( m_Server, Victim, string( ), string( ), User, Reason ) ) );
    Как я понял добавляет в вектор с банами имя юзера коту ответить и каллабету бана

    Код:
    CCallableBanAdd *CGHostDBMySQL :: ThreadedBanAdd( string server, string user, string ip, string gamename, string admin, string reason )
    {
        void *Connection = GetIdleConnection( );
     
        if( !Connection )
            ++m_NumConnections;
     
        CCallableBanAdd *Callable = new CMySQLCallableBanAdd( server, user, ip, gamename, admin, reason, Connection, m_BotID, m_Server, m_Database, m_User, m_Password, m_Port );
        CreateThread( Callable );
        ++m_OutstandingCallables;
        return Callable;
    }
    Конструктор вроде как понятен.

    Но дальше апокалипсис
    Код:
    CreateThread( Callable );
    Вроде понятно ф-я создает поток.
    Код:
    boost :: thread Thread( boost :: ref( *callable ) );
    Что это? Где точка входа у нового потока???
    При этом у каждого кллабета есть
    Код:
    virtual void operator( )( ) { }