varValue.m_pstring->GetBuffer(1)); 当读取的m_recordset.GetFieldValue(1,varValue);为空时使用varValue.m_pstring->GetBuffer(1));就出错而通过我程序中的对话框,插入空值后,可以读出急等解决,请高手指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 判断是否空再处理呀,或者用TRY包起来。 先判断GetFieldValue的返回值varValue是不是空 m_recordset.GetFieldValue(1,varValue);if(!varValue.m_pstring.IsEmpty()){ 使用varValue.m_pstring->GetBuffer(1));} 出错在于你对空值的处理应该加上异常处理try{ m_recordset.GetFieldValue(1, varValue); str = varValue.m_pstring->GetBuffer(1);}catch (_com_error){ str = _T("");} 哎,依然不行.各位有没有做成数据库.在access表中,将一个值置空,看能不能用m_recordset.GetFieldValue(1,varValue);varValue.m_pstring->GetBuffer(1));读出.解决不了,很郁闷,请各位多多帮忙. 应该是可行的,下面的代码是我在一个应用中测试通过的CString CsRecordSet::GetString(LPCTSTR strField){ CString strValue(_T("")); _variant_t varFieldValue; if (m_bValid) { try { varFieldValue = m_pRecordset->GetCollect(strField); switch(varFieldValue.vt) { case VT_NULL: break; case VT_BSTR: strValue = varFieldValue.bstrVal; break; case VT_I2: case VT_I4: case VT_INT: strValue.Format(_T("%d"), varFieldValue.intVal); break; case VT_UI2: case VT_UI4: case VT_UINT: strValue.Format(_T("%u"), varFieldValue.uintVal); break; default: break; } } catch (_com_error) { } } return strValue;} GDI+输出字符的问题 求救,在线程中创建的窗口,退出线程后就失效了,怎么办 MFC socket 多线程 release问题求教? 怎么做??急!!! http响应的问题???????? ListCtrl 中 NMLISTVIEW 的 lParam 的问题 List Control问题 为什么对一个CEdit对象SetWindowText后不显示呢 数据转换 如何编程得到 WIN2000 里的所有用户名? 我用bcgbar向导生成的程序的图标为什么都是bcg的图标呀? 字符串怎么链接?大家快快来帮忙
if(!varValue.m_pstring.IsEmpty())
{
使用varValue.m_pstring->GetBuffer(1));
}
应该加上异常处理
try
{
m_recordset.GetFieldValue(1, varValue);
str = varValue.m_pstring->GetBuffer(1);
}
catch (_com_error)
{
str = _T("");
}
m_recordset.GetFieldValue(1,varValue);
varValue.m_pstring->GetBuffer(1));
读出.
解决不了,很郁闷,请各位多多帮忙.
CString CsRecordSet::GetString(LPCTSTR strField)
{
CString strValue(_T(""));
_variant_t varFieldValue;
if (m_bValid)
{
try
{
varFieldValue = m_pRecordset->GetCollect(strField);
switch(varFieldValue.vt)
{
case VT_NULL:
break;
case VT_BSTR:
strValue = varFieldValue.bstrVal;
break;
case VT_I2:
case VT_I4:
case VT_INT:
strValue.Format(_T("%d"), varFieldValue.intVal);
break;
case VT_UI2:
case VT_UI4:
case VT_UINT:
strValue.Format(_T("%u"), varFieldValue.uintVal);
break;
default:
break;
}
}
catch (_com_error)
{
}
} return strValue;
}