我有一个查询,可以获得付款金额的价值。在MS Access数据库中,此字段为currency
类型。
我需要在文本框中显示此值(我使用的是C ++和原始WinAPI for GUI),因此我需要知道如何将_variant_
从记录集转换为正确的字符串(1,200.55
)。 / p>
这是一个例子(记住,我使用原始的WinAPI和C ++ for GUI):
SetDlgItemText(hDlg, IDC_EDIT11,
pRS->Fields->GetItem(L"PaidValue")->Value.bstrVal); // problem is this line
运行程序时,我的文本框为空。
当我调试它时,它报告没有错误。
如何将_variant_t
转换为字符串(1,200.00
)?
答案 0 :(得分:0)
CString GetString(_variant_t vValue)
{
USES_CONVERSION;
CString strValue("");
if ((V_VT(&vValue) == VT_NULL) || (V_VT(&vValue) == VT_EMPTY))
return strValue;
if ((V_VT(&vValue) == VT_BSTR) || SUCCEEDED(VariantChangeType(&vValue, &vValue, 0, VT_BSTR)))
strValue = OLE2T(V_BSTR(&vValue));
return strValue;
}
CString strVal = GetString(pRS->Fields->Item["PaidValue"]->Value)