منظمة قانون التطور - Evolution Law Organization
موضوع بعنوان :[C++] إصلاح مشكلة حذف الشخصية
الكاتب :LooL


مرحبا



اليوم جايبلكم طريقة حل مشكلة حذف الشخصيات



المشكلة باختصار خطأ في إسم الجدول الخاص بالشخصيات المحذوفة



 



سورس السيرفر DB/ClinetManagerPlayer.cpp



 



ابحث عن




snprintf(queryStr, sizeof(queryStr), "INSERT INTO player%s_deleted SELECT * FROM player%s WHERE id=%d", GetTablePostfix(), GetTablePostfix(), pi->player_id);
          std::auto_ptr<SQLMsg> pIns(CDBManager::instance().DirectQuery(queryStr));

          if (pIns->Get()->uiAffectedRows == 0 || pIns->Get()->uiAffectedRows == (uint32_t)-1)
          {
                sys_log(0, "PLAYER_DELETE FAILED %u CANNOT INSERT TO player%s_deleted", dwPID, GetTablePostfix());

                peer->EncodeHeader(HEADER_DG_PLAYER_DELETE_FAILED, pi->dwHandle, 1);
                peer->EncodeBYTE(pi->account_index);
                return;
          }


استبدل بـ




snprintf(queryStr, sizeof(queryStr), "INSERT INTO player_deleted%s SELECT * FROM player%s WHERE id=%d", GetTablePostfix(), GetTablePostfix(), pi->player_id);
          std::auto_ptr<SQLMsg> pIns(CDBManager::instance().DirectQuery(queryStr));

          if (pIns->Get()->uiAffectedRows == 0 || pIns->Get()->uiAffectedRows == (uint32_t)-1)
          {
                sys_log(0, "PLAYER_DELETE FAILED %u CANNOT INSERT TO player_deleted%s", dwPID, GetTablePostfix());

                peer->EncodeHeader(HEADER_DG_PLAYER_DELETE_FAILED, pi->dwHandle, 1);
                peer->EncodeBYTE(pi->account_index);
                return;
          }


ملاحظة



الجدول player والجدول player_deleted لازم كل العناصر فيه تكون متساوية



بمعنى لو فيه عنصر اسمه cheque لازم يتواجد في كل العنصرين عشان تتم عملية نقل البيانات بشكل صحيح



1f601