求帮助看看这段代码是不是有问题,一直提示转换错误.

代码

char szMagicQuest[1024] = {0,};
qry->GetStr("m_aMagicQuest",szMagicQuest);
if(VerifyString(szMagicQuest,__FILE__,__LINE__,lpDbOverlappedPlus->AccountInfo.szPlayer,NULL) == FALSE)
{
    return;
}
CountStr = 0;
while('$' != szMagicQuest[CountStr])
{
    nEventId = GetIntPaFromStr( szMagicQuest, &CountStr );
    nDesc = GetIntPaFromStr( szMagicQuest, &CountStr );
    nCount = GetIntPaFromStr( szMagicQuest, &CountStr );
    chElem = (char)GetIntPaFromStr( szMagicQuest, &CountStr );
    nX = GetIntPaFromStr( szMagicQuest, &CountStr );
    nY = GetIntPaFromStr( szMagicQuest, &CountStr );
    bLow = (char)GetIntPaFromStr( szMagicQuest, &CountStr );
    nMagicDay = GetIntPaFromStr( szMagicQuest, &CountStr );
    CountStr++;
    //Error("%d %d %d %d %d %d %d %d [%d/%d]",nEventId,nX,nY,nCount,nDesc,nMagicDay,chElem,bLow,CountStr,nStrLen);
    if( nEventId > 0 && nMagicDay == nTmpDay)
    {
        CDayEventState* pDES = new CDayEventState;
        pDES->SetEventId(nEventId);
        CMagicQuest* pMQ = new CMagicQuest;
        pMQ->SetCount(nCount);
        pMQ->m_nDesc = nDesc;
        
        sMagicPos* pMPos = new sMagicPos;
        pMPos->bLow = (bLow == 1 ? true : false);
        pMPos->chElem = chElem;
        pMPos->nEventId = nEventId;
        pMPos->nX = nX;
        pMPos->nY = nY;

        pMQ->SetMagicPos(pMPos);
        pDES->SetMagicQuest(pMQ);

        pMover->m_DayEvent.Add(pDES);
    }
}

SQL数据库:
表:
m_aMagicQuest varchar(1024) Checked

存储过程:
, @iszMagicQuest varchar(1024) = '$'

,A.m_aMagicQuest

提示:
\DbManagerFun.cpp, 1210.
Exec RETURN FALSE, ThreadID : 5100.
SQLSTATE:42000 error:[Microsoft][SQL Server Native Client 11.0][SQL Server]从数据类型 varchar 转换为 int 时出错。

变量从varchar 转换为 int 时出错,你就看在哪里发生了数据类型的转变