如题,SQL中的decimal类型可以转化为VC中的什么类型? 怎么转化?
decimal类型里设置的长度我是考虑long型小数的范围的。可以转换为long型吗? 怎么转化? 
或者放到CString里边。用Format()?这个参数怎么写?

解决方案 »

  1.   

    csdn又出毛病了,昨晚上发的贴,现在一个回帖的也没有。原来是所选的板块里,帖子列表里没显示我的帖子!!! 白等了一天的时间。自己顶一下
      

  2.   

    怎么没人回复呀?
    难道大家存“钱”、“价格”这类的数据都不是用的decimal? Money类型小数点后面有4位,不如这个用着舒服
      

  3.   

    用这个转换从数据库读取出来的数据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;
    }