读书人

如果过滤 ntext 类型的数据,该怎么解决

发布时间: 2012-01-30 21:15:58 作者: rapoo

如果过滤 ntext 类型的数据
CString gNO="123";

CRecMydep rec;
rec.m_strFilter.Format("Notes=%s",gNO);

rec.Open();----出错

字段:Notes 类型为ntext




[解决办法]
用下面的函数转换

C/C++ code
CString CMyDB::VariantToString(const _variant_t &var){    CString strValue;    switch (var.vt)    {    case VT_BSTR://字符串    case VT_LPSTR://字符串    case VT_LPWSTR://字符串        strValue = (LPCTSTR)(_bstr_t)var;        break;    case VT_I1:    case VT_UI1:        strValue.Format("%d", var.bVal);        break;    case VT_I2://短整型        strValue.Format("%d", var.iVal);        break;    case VT_UI2://无符号短整型        strValue.Format("%d", var.uiVal);        break;    case VT_INT://整型        strValue.Format("%d", var.intVal);        break;    case VT_I4: //整型        strValue.Format("%d", var.lVal);        break;    case VT_I8: //长整型        strValue.Format("%d", var.lVal);        break;    case VT_UINT://无符号整型        strValue.Format("%d", var.uintVal);        break;    case VT_UI4: //无符号整型        strValue.Format("%d", var.ulVal);        break;    case VT_UI8: //无符号长整型        strValue.Format("%d", var.ulVal);        break;    case VT_VOID:        strValue.Format("%8x", var.byref);        break;    case VT_R4://浮点型        strValue.Format("%.4f", var.fltVal);        break;    case VT_R8://双精度型        strValue.Format("%.8f", var.dblVal);        break;    case VT_DECIMAL: //小数        strValue.Format("%.8f", (double)var);        break;    case VT_CY:        {            COleCurrency cy = var.cyVal;            strValue = cy.Format();        }        break;    case VT_BLOB:    case VT_BLOB_OBJECT:    case 0x2011:        strValue = "[BLOB]";        break;    case VT_BOOL://布尔型        strValue = var.boolVal ? "TRUE" : "FALSE";        break;    case VT_DATE: //日期型        {            DATE dt = var.date;            COleDateTime da = COleDateTime(dt);             strValue = da.Format("%Y-%m-%d %H:%M:%S");        }        break;    case VT_NULL://NULL值        strValue = "";        break;    case VT_EMPTY://空        strValue = "";        break;    case VT_UNKNOWN://未知类型    default:        strValue = "UN_KNOW";        break;    }    return strValue;} 

读书人网 >VC/MFC

热点推荐