Sosyal açıldı! Bir göz at → Hemen gir →

YARDIM GameServer {CALL UPDATE_RANKS} Error hatası

Speed

KY Üye
KAYIT
13 Ocak 2025
Mesajlar
39
Tepki puanı
7
Merhaba

gameserver de bu hata çıkıyor nereden kaynaklıdır bu prodüsürler den mi yoksa src ile alakalı mı

Database error: [ ODBC Error - 20.1.2025 18:40:0 ] ] Source: {CALL UPDATE_RANKS} Error: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Arithmetic overflow error converting expression to data type int. Description: Failed to execute statement.
 

hsnarsln

KY Kıdemli Üye
Yardımsever
KAYIT
21 Ocak 2024
Mesajlar
235
Çözümler
3
Tepki puanı
60
SQL Prosedürün
Kod:
ALTER PROCEDURE [dbo].[UPDATE_RANKS]
AS
BEGIN
    SET NOCOUNT ON;
    SET ARITHABORT ON;  -- Aritmetik taşma hataları önlemesi için
    SET NUMERIC_ROUNDABORT OFF;

    BEGIN TRY
        EXEC UPDATE_USER_KNIGHTS_RANK;
        EXEC UPDATE_USER_PERSONAL_RANK;
        EXEC UPDATE_KNIGHTS_RATING;
    END TRY
    BEGIN CATCH
        -- Hata loglama
        PRINT 'Hata oluştu: ' + ERROR_MESSAGE();
    END CATCH;
END;

c++
Kod:
void CDBAgent::UpdateRanks()
{
  
    unique_ptr<OdbcCommand> dbCommand(m_GameDB->CreateCommand());
    if (dbCommand == nullptr)
    {
        std::cerr << "[Error] Failed to create ODBC command!" << std::endl;
        return;
    }

    // SQL prosedürünü calıstırır
    if (!dbCommand->Execute(_T("{CALL UPDATE_RANKS}")))
    {
        std::string errorMsg = m_GameDB->GetError();
        std::cerr << "[SQL Error] UPDATE_RANKS execution failed: " << errorMsg << std::endl;
        ReportSQLError(errorMsg);
    }
    else
    {
        std::cout << "[Success] UPDATE_RANKS executed successfully!" << std::endl;
    }
}

sonuç= sql tablon int veri tipine sığmayan bir değer ürettiği için hataya sebep oluyor.


bu hatayı verdi


1738264960492.png
 
Anasayfa Kayıt ol Giriş yap
Üst Alt