数据库保存出错!解决思路

数据库保存出错!
_RecordsetPtr pRsAJ("ADODB.Recordset");


 sql=CString("Select * From BuildInfo ")+CString("Where XMBH = '")+m_XMBH+CString("' ")+CString("And FWMC = '")+m_FWMC+CString("'");

try
{
pRsAJ->Open((LPCTSTR)sql,g_pCnHTXT.GetInterfacePtr(),\
adOpenStatic, adLockOptimistic, adCmdText);
}
catch(...)
{
if (pRsAJ->GetState()==adStateOpen) pRsAJ->Close();
AfxMessageBox(_T("获取案件房屋信息出错!\n")); return;
}
if(pRsAJ->ADOEOF) pRsAJ->AddNew();

try
{
  pRsAJ->PutCollect("XMBH", _variant_t(m_XMBH));
  pRsAJ->PutCollect("FWMC", _variant_t(m_FWMC));
  vTemp.intVal=_tstoi(m_RowNo);pRsAJ->PutCollect("ROWNO", vTemp);
  vTemp.intVal=_tstoi(m_ZTS); pRsAJ->PutCollect("TaoShu", vTemp);
vTemp.intVal=_tstoi(m_ZCS); pRsAJ->PutCollect("ZCS", vTemp);
 vTemp.intVal=_tstoi(m_JZCS);pRsAJ->PutCollect("JZCS", vTemp);
vTemp.intVal=_tstoi(m_DXCS);pRsAJ->PutCollect("DXCS",vTemp);

}
catch(_com_error e)
{
CString strErrMsg=e.ErrorMessage();
AfxMessageBox(_T("保存房屋信息出错!\n")); return;
}

问题出现了:
  
 ROWNO,TAOSHU 两个字段在数据库(ORACLE)里的数据类型是NUMBER(4).m_RowNo,m_ZTS是保存输入框结果的CString类型的字符串,结果发现当我在两个框里分别输入3,4时,数据库的结果没有保存,显示为0.
  也就是vTemp.intVal=_tstoi(m_RowNo);这里的m_RowNo显示数据是3,但vTemp.intVal显示值为0.
  求解!!



------解决方案--------------------
不懂
回复内容太短了!
------解决方案--------------------
m_RowNo 的类型是什么?
特别注意一下 Unicode问题,是不是数据库里取的是Unicode数据,而转换的时候类型不对?
------解决方案--------------------
CString m_RowNo=_T("3");
int Val=_tstoi(m_RowNo);
无论多字节还是Unicode均可得到Val为3的结果;
所以,检查m_RowNo的值究竟是多少?要不,直接先CString m_RowNo=_T("3");看看结果如何?
最好打印出来看看。
------解决方案--------------------
CString m_RowNo=_T("3");
int Val=_tstoi(m_RowNo);
无论多字节还是Unicode均可得到Val为3的结果;
所以,检查m_RowNo的值究竟是多少?要不,直接先CString m_RowNo=_T("3");看看结果如何?
最好打印出来看看。