如何设置adDecimal参数的精度以避免“无效精度”错误?

时间:2011-09-19 12:34:42

标签: c++ sql-server ado

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

pParam1.Precision = 8
pParam1.NumericScale = 2

对于C ++来说,它非常相似:

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

答案 1 :(得分:1)

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