【问题标题】:How to set precision for adDecimal parameter to avoid "invalid precision" error?如何设置 adDecimal 参数的精度以避免“无效精度”错误?
【发布时间】:2011-09-19 12:34:41
【问题描述】:

我的 MSSQL 服务器上有一个表,其列定义为小数 (8,2)。

在我的 c++ 应用程序中,我定义了以下要传递给 sp 的参数。

pParam1 = pCommand->CreateParameter ( 
_bstr_t ("Thing"),
adDecimal,          
adParamInput,
8,                  
(_variant_t) thing);
pCommand->Parameters->Append (pParam1);

我收到“无效精度”错误。

如何在 pParam1 设置中定义精度以使其与表中的定义匹配?

【问题讨论】:

    标签: c++ sql-server ado


    【解决方案1】:

    默认值为 (18,0)。在 VBScript 中是:

    pParam1.Precision = 8
    pParam1.NumericScale = 2
    

    对于 C++,它惊人地相似:

    pParam1->Precision = 8;
    pParam1->NumericScale = 2;
    

    【讨论】:

      【解决方案2】:

      您必须随后设置参数对象的PrecisonNumericScale 属性

      【讨论】:

      • 嗨!我发现了这一点,但是从 MSDN 的页面中我找不到/理解“如何”,换句话说:我找不到正确的语法。
      猜你喜欢
      • 2019-09-22
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      相关资源
      最近更新 更多