如何设置adDecimal 参数的精度以避免"invalid precision"错误?

How to set precision for adDecimal parameter to avoid "invalid precision" error?

本文关键字:invalid 错误 precision 精度 何设置 设置 参数 adDecimal      更新时间:2023-10-16

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

在我的c++应用程序中,我定义了以下参数,并将其传递给sp.

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

我得到一个错误"Invalid precision".

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

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

pParam1.Precision = 8
pParam1.NumericScale = 2

对于c++来说是惊人的相似:

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

您必须随后设置参数对象的precision和NumericScale属性