ado连接oracle,使用参数化查询遇到奇怪的问题,求解
数据库中col_a的类型为 NUMBER(12)
_variant_t vtValue;
vtValue.vt = VT_I8;
vtValue.llVal = (long long)100020003000;
Cmd1->CommandText = _bstr_t(L"select a from table_b where col_a = :col_a");
// Create Parameter Object.
Param1 = Cmd1->CreateParameter( _bstr_t(L":col_a"),
ADODB::adBigInt,
ADODB::adParamInput,
8,
vtValue );
Cmd1->Parameters->Append( Param1 );
// Open Recordset Object.
Rs1 = Cmd1->Execute( &vtEmpty, &vtEmpty2, ADODB::adCmdText );
但在Execute时一直抛出数据库错误“ORA-01722: 无效数字”。
但如果传入了一个long值为11的数据,就能正确找到数据。
不明白为啥为是这个错误,求达人解答。谢谢!