我的程序是这么写的
CString sqlSen,strCurItem;
sqlSen="update srvListMore set srvName='";
sqlSen+=sysinfor->computeName;
sqlSen+="'";
sqlSen+=",";
sqlSen+="srvPar='";
sqlSen+=sysinfor->zoneName;
sqlSen+="'";
sqlSen+=",";
sqlSen+="MAC Address='";
sqlSen+=sysinfor->macAddress;
sqlSen+="'";
sqlSen+=",";
sqlSen+="OS Version='";
sqlSen+=sysinfor->lpOS;
sqlSen+="'";
sqlSen+=",";
sqlSen+="connMethod='";
sqlSen+=strconnmode;
sqlSen+="'";
sqlSen+=",";
sqlSen+="Proxy IP='";
sqlSen+=sysinfor->proxyInfo;
sqlSen+="'";
sqlSen+=",";
sqlSen+="IP='";
sqlSen+=sysinfor->innerIP;
sqlSen+="'";
sqlSen+=",";
sqlSen+="Outer IP='";
sqlSen+=sysinfor->outerIP;
sqlSen+="'";
sqlSen+=",";
sqlSen+="Last activetime='";
sqlSen+=s;
sqlSen+="'";
sqlSen+="where globalId =";
sqlSen+=strId;
try
{
HRESULT hRes;
hRes=m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
if(SUCCEEDED(hRes))
{
hRes = m_pTreeRecordset->Open((LPTSTR)(LPCTSTR)sqlSen,
_variant_t((IDispatch *)(((CTestCardApp*)AfxGetApp())->m_pTreeConn),true),
adOpenDynamic,adLockPessimistic,adCmdText);
} //说明: 完成打开数据表操作
if(SUCCEEDED(hRes))
{
return 1 ;
} }
catch (_com_error e)
{
MessageBox("Modify Database failed") ;
return 0 ;
}
return 0 ;
可是老是出错,我不知道是什么原因,请知道的大侠说一下,分不够可以再加的
CString sqlSen,strCurItem;
sqlSen="update srvListMore set srvName='";
sqlSen+=sysinfor->computeName;
sqlSen+="'";
sqlSen+=",";
sqlSen+="srvPar='";
sqlSen+=sysinfor->zoneName;
sqlSen+="'";
sqlSen+=",";
sqlSen+="MAC Address='";
sqlSen+=sysinfor->macAddress;
sqlSen+="'";
sqlSen+=",";
sqlSen+="OS Version='";
sqlSen+=sysinfor->lpOS;
sqlSen+="'";
sqlSen+=",";
sqlSen+="connMethod='";
sqlSen+=strconnmode;
sqlSen+="'";
sqlSen+=",";
sqlSen+="Proxy IP='";
sqlSen+=sysinfor->proxyInfo;
sqlSen+="'";
sqlSen+=",";
sqlSen+="IP='";
sqlSen+=sysinfor->innerIP;
sqlSen+="'";
sqlSen+=",";
sqlSen+="Outer IP='";
sqlSen+=sysinfor->outerIP;
sqlSen+="'";
sqlSen+=",";
sqlSen+="Last activetime='";
sqlSen+=s;
sqlSen+="'";
sqlSen+="where globalId =";
sqlSen+=strId;
try
{
HRESULT hRes;
hRes=m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
if(SUCCEEDED(hRes))
{
hRes = m_pTreeRecordset->Open((LPTSTR)(LPCTSTR)sqlSen,
_variant_t((IDispatch *)(((CTestCardApp*)AfxGetApp())->m_pTreeConn),true),
adOpenDynamic,adLockPessimistic,adCmdText);
} //说明: 完成打开数据表操作
if(SUCCEEDED(hRes))
{
return 1 ;
} }
catch (_com_error e)
{
MessageBox("Modify Database failed") ;
return 0 ;
}
return 0 ;
可是老是出错,我不知道是什么原因,请知道的大侠说一下,分不够可以再加的
_variant_t((IDispatch *)(((CTestCardApp*)AfxGetApp())->m_pTreeConn),true),
adOpenDynamic,adLockPessimistic,adCmdText);
这个不是吗?
他说我的语句是错误的
我跟了下,我的语句是这样的
请问有什么错误呢?
在数据库中除了globalId的类型为int
其他的全为文本的
catch (_com_error e)
{
MessageBox("Modify Database failed") ;
return 0 ;
}
改成:
catch(_com_error &e)
{
AfxMessageBox(e.Description());
return 0 ;
}
看看能否捕获异常信息??