Çözüldü db build _SQLMsg hatası

  • Konuyu açan Konuyu açan asilords
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 10
  • Gösterim Gösterim 83
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

asilords

MT Üye
MT Üye
Mesaj
381
Çözümler
14
Beğeni
102
Puan
749
Ticaret Puanı
0
Görselldeki hatayı alıyorum çözemedim yardımcı olabilecek var mı?



Ekran görüntüsü 2025-03-15 151042.webp
 
Çözüm
22312 eklentisini görüntüle

Kod:
Genişlet Daralt Kopyala
                                    char szQuery[512];
                                    snprintf(szQuery, sizeof(szQuery), "INSERT INTO player.item (id, owner_id, window, count, vnum) VALUES(%u, %u, %d, %d, %d)", newItemID, accountID, 4, itemCount, itemData.itemVnum);
                                    delete CDBManager::instance().DirectQuery(szQuery, SQL_PLAYER);

                                    snprintf(szQuery, sizeof(szQuery), "INSERT INTO player.ishop_log (accountID, playerName, buyDate, buyTime, ipAdress, itemVnum, itemCount, itemPrice) VALUES(%u, '%s', NOW(), %d, '%s', %u, %d, %lld)", accountID, playerName, time(0), ipAdress, itemData.itemVnum, itemCount, itemPrice)...
DirectQuery fonksiyonunu kontrol etmeni öneririm. std::unique_ptr döndürüyorsa bu gibi tanımları doğrudan kullanamazsın.
 
srcde sqlmsg diye arat diğer uyarlanmış örnekleri gör sonra bu kod satırını da o hale getir düzelir
 
halletim sadece delete kaldı, DirectQuery fonksiyonunda deleteyle alaka bişey göremedim.

Ekran görüntüsü 2025-03-15 154516.webp



C++:
Genişlet Daralt Kopyala
std::unique_ptr<SQLMsg> CAsyncSQL::DirectQuery(const char * c_pszQuery)
{
    if (m_ulThreadID != mysql_thread_id(&m_hDB))
    {
        sys_log(0, "MySQL connection was reconnected. querying locale set"); // @warme012
        while (!QueryLocaleSet());
        m_ulThreadID = mysql_thread_id(&m_hDB);
    }

    auto p = std::make_unique<SQLMsg>();

    p->m_pkSQL = &m_hDB;
    p->iID = ++m_iMsgCount;
    p->stQuery = c_pszQuery;

    if (mysql_real_query(&m_hDB, p->stQuery.c_str(), p->stQuery.length()))
    {
        char buf[1024];

        snprintf(buf, sizeof(buf),
                "AsyncSQL::DirectQuery : mysql_query error: %s\nquery: %s",
                mysql_error(&m_hDB), p->stQuery.c_str());

        sys_err(buf);
        p->uiSQLErrno = mysql_errno(&m_hDB);
    }

    p->Store();
    return p;
}
 
delete olan kısmın görselini ekler misin

Ekran görüntüsü 2025-03-15 155750.webp


Kod:
Genişlet Daralt Kopyala
                                    char szQuery[512];
                                    snprintf(szQuery, sizeof(szQuery), "INSERT INTO player.item (id, owner_id, window, count, vnum) VALUES(%u, %u, %d, %d, %d)", newItemID, accountID, 4, itemCount, itemData.itemVnum);
                                    delete CDBManager::instance().DirectQuery(szQuery, SQL_PLAYER);

                                    snprintf(szQuery, sizeof(szQuery), "INSERT INTO player.ishop_log (accountID, playerName, buyDate, buyTime, ipAdress, itemVnum, itemCount, itemPrice) VALUES(%u, '%s', NOW(), %d, '%s', %u, %d, %lld)", accountID, playerName, time(0), ipAdress, itemData.itemVnum, itemCount, itemPrice);
                                    delete CDBManager::instance().DirectQuery(szQuery, SQL_PLAYER);
 
22312 eklentisini görüntüle

Kod:
Genişlet Daralt Kopyala
                                    char szQuery[512];
                                    snprintf(szQuery, sizeof(szQuery), "INSERT INTO player.item (id, owner_id, window, count, vnum) VALUES(%u, %u, %d, %d, %d)", newItemID, accountID, 4, itemCount, itemData.itemVnum);
                                    delete CDBManager::instance().DirectQuery(szQuery, SQL_PLAYER);

                                    snprintf(szQuery, sizeof(szQuery), "INSERT INTO player.ishop_log (accountID, playerName, buyDate, buyTime, ipAdress, itemVnum, itemCount, itemPrice) VALUES(%u, '%s', NOW(), %d, '%s', %u, %d, %lld)", accountID, playerName, time(0), ipAdress, itemData.itemVnum, itemCount, itemPrice);
                                    delete CDBManager::instance().DirectQuery(szQuery, SQL_PLAYER);
O iki tane delete kelimelerini şu şekilde değiştir;

auto pMsg1 = delete'nin sağındaki kod
auto pMsg2 = delete'nin sağındaki kod
 
Çözüm
O iki tane delete kelimelerini şu şekilde değiştir;

auto pMsg1 = delete'nin sağındaki kod
auto pMsg2 = delete'nin sağındaki kod
Dediğinizi yaptım son olarak bu hatayı verdi
Ekran görüntüsü 2025-03-15 161958.webp


Kod:
Genişlet Daralt Kopyala
                                    DWORD newItemID = GetEventFlag("SPECIAL_ITEM_ID") + 1;
                                    SetEventFlag("SPECIAL_ITEM_ID", newItemID);
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst