VARIANT 类型说明


 
 
  1. string CAdoConnection::VariantToString( const _variant_t &var)
  2. {
  3. string strValue;
  4. TCHAR szValue[ 1024] = { 0x00};
  5. switch (var.vt)
  6. {
  7. case VT_BSTR: //字符串
  8. case VT_LPSTR: //字符串
  9. case VT_LPWSTR: //字符串
  10. strValue = (LPCTSTR)( _bstr_t)var;
  11. break;
  12. case VT_I1:
  13. case VT_UI1:
  14. _stprintf(szValue, _T( "%d"), var.bVal);
  15. strValue = szValue;
  16. break;
  17. case VT_I2: //短整型
  18. _stprintf(szValue, _T( "%d"), var.iVal);
  19. strValue = szValue;
  20. break;
  21. case VT_UI2: //无符号短整型
  22. _stprintf(szValue, _T( "%d"), var.uiVal);
  23. strValue = szValue;
  24. break;
  25. case VT_INT: //整型
  26. _stprintf(szValue, _T( "%d"), var.intVal);
  27. strValue = szValue;
  28. break;
  29. case VT_I4: //整型
  30. _stprintf(szValue, _T( "%d"), var.lVal);
  31. strValue = szValue;
  32. break;
  33. case VT_I8: //长整型
  34. _stprintf(szValue, _T( "%ld"), var.bVal);
  35. strValue = szValue;
  36. break;
  37. case VT_UINT: //无符号整型
  38. _stprintf(szValue, _T( "%u"), var.uintVal);
  39. strValue = szValue;
  40. break;
  41. case VT_UI4: //无符号整型
  42. _stprintf(szValue, _T( "%u"), var.ulVal);
  43. strValue = szValue;
  44. break;
  45. case VT_UI8: //无符号长整型
  46. _stprintf(szValue, _T( "%u"), var.ulVal);
  47. strValue = szValue;
  48. break;
  49. case VT_VOID:
  50. _stprintf(szValue, _T( "%8x"), ( unsigned int)var.byref);
  51. strValue = szValue;
  52. break;
  53. case VT_R4: //浮点型
  54. _stprintf(szValue, _T( "%.4f"), var.fltVal);
  55. strValue = szValue;
  56. break;
  57. case VT_R8: //双精度型
  58. _stprintf(szValue, _T( "%.8f"), var.dblVal);
  59. strValue = szValue;
  60. break;
  61. case VT_DECIMAL: //小数
  62. _stprintf(szValue, _T( "%.8f"), ( double)var);
  63. strValue = szValue;
  64. break;
  65. case VT_CY:
  66. {
  67. COleCurrency cy = var.cyVal;
  68. strValue = cy.Format();
  69. }
  70. break;
  71. case VT_BLOB:
  72. case VT_BLOB_OBJECT:
  73. case 0x2011:
  74. strValue = "[BLOB]";
  75. break;
  76. case VT_BOOL: //布尔型
  77. strValue = var.boolVal ? "TRUE" : "FALSE";
  78. break;
  79. case VT_DATE: //日期型
  80. {
  81. DATE dt = var.date;
  82. COleDateTime da = COleDateTime(dt);
  83. strValue = da.Format( "%Y-%m-%d %H:%M:%S");
  84. }
  85. break;
  86. case VT_NULL: //NULL值
  87. strValue = "VT_NULL";
  88. break;
  89. case VT_EMPTY: //空
  90. strValue = "";
  91. break;
  92. case VT_UNKNOWN: //未知类型
  93. default:
  94. strValue = "UN_KNOWN";
  95. break;
  96. }
  97. return strValue;
  98. }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值