很简单 - 有没有办法使用这个库来调用存储过程或函数,返回多个结果?我知道ITRoutingManager
,但它似乎只返回一个值..
详细地说,这就是我的意思:
CREATE FUNCTION test_out1( pin INT )
RETURNING INT;
DEFINE param INT;
LET param = 321;
RETURN param;
END FUNCTION;
返回321
,我可以用ITValue
and 得到值ITConversions
。所以这很好。但以下不是:
CREATE FUNCTION test_out2( pin INT )
RETURNING INT, INT;
DEFINE param INT;
LET param = 321;
DEFINE param2 INT;
LET param2 = 123;
RETURN param, param2;
END FUNCTION;
当我这样做时routine.GetRoutine( "function test_out2( int )" )
,它会很好,所以没问题。但是看到这个:
std::cout << "Result type: " << routine.ResultType()->Name() IsRow() ? "row, " : ", " )
<< (routine.ResultType()->IsCollection() ? "collection, " : ", " )
<< routine.ResultType()->Quality() << "\n\n";
打印integer, , , null
,注意整数..为什么是整数,而不是行,例如。以及如何获取函数返回的 2 个值?另一个有趣的事实 - 返回值是0(当我int
使用ITConversions
类将其转换为 时),不是 123,也不是 321..
必须有办法。这是一个特殊的库,由 Informix 开发人员为 Informix 服务器编写,如果这不可能,那就太奇怪了。
函数也一样,但我想那里是一样的。
注意:对于informix 过程/函数,在常见情况下没有输出参数之类的东西(Informix:带有输出参数的过程?)