如何在POCO中获得存储过程的输出参数?
How can I get output parameter to stored procedure in POCO?
我使用的是poco库版本1.4.6
我想编写程序连接数据库,调用存储过程,并得到参数。
首先,我像这样选择value。
conn.Connect(host, user, password, db);
Poco::Data::Session* session = conn.Ptr();
int myNum;
std::string myStr;
*session << "SELECT `my_number`, `my_string` FROM `my_table`;",
Poco::Data::into(myNum),
Poco::Data::into(myStr),
Poco::Data::now;
这是可用的。
我想调用存储过程并获得输出参数值。所以这样写。
// `my_sp` was simple stored procedure like this.
// `my_sp`(in inum int, in istr varchar(50), out onum int, out ostr varchar(50))
// SET onum = inum;
// SET ostr = istr;
int inNum, outNum;
std::string inStr, outStr;
*session << "CALL `my_sp`(?,?,?,?);",
Poco::Data::use(inNum),
Poco::Data::use(inStr),
Poco::Data::into(outNum),
Poco::Data::into(outStr),
Poco::Data::now;
但是没有。
我试过了。
*session << "CALL `my_sp`(1234, 'abcd', @o_num, @o_str);",
Poco::Data::now;
*session << "SELECT @o_num;",
Poco::Data::into(outNum),
Poco::Data::now;
//*session << "SELECT @o_num, @o_str;",
// Poco::Data::into(outNum),
// Poco::Data::into(outStr),
// Poco::Data::now;
我可以通过select得到号码。但是我拿不出绳子。如果我选择outStr,抛出异常。
[MySQL]: [Comment]: mysql_stmt_fetch error [mysql_stmt_error]: [mysql_stmt_errno]: 0 [mysql_stmt_sqlstate]: 00000 [statemnt]: SELECT @o_num, @o_str;
为什么抛出异常?我不明白。因为我英语不好。
我试着找一个像我一样的问题。但是其他用户和我不一样。
我想那是因为我英语不好。中文太难学了
我想使用存储过程并获得输出参数。
请帮帮我!
1.4.x不支持存储过程。你应该用1.5。
相关文章:
- 在C++中调用 MS SQL 存储过程
- C++使用存储过程返回结果
- 如何将QString绑定到QSQLQUERY,该呼叫过程输出VARCHAR
- Visual样本存储过程从C 程序执行
- 多次调用存储过程时C++连接器"Commands out of sync" mySQL
- SQL Server 2016 CLR 存储过程错误:"A system assertion check has failed"
- 将大量数据从C 应用程序传递到SQLServer存储过程的最快方法是什么?
- 基于C++模板指针的变量会导致返回垃圾,除非之前存储和输出
- 在我的代码中执行存储过程时出现问题
- 读取 Firebird 存储过程的返回值
- 在C++中通过SOCI/ODBC实现SQL Server存储过程
- 如何使用 Oracle 存储过程中C++函数
- 使用 QSqlQuery 检索 MySQL 存储过程的输出
- 捕获外部过程输出
- C++/CLI 存储过程找不到资源
- ADO 不支持存储过程中的 XML
- MSSQL服务器存储过程在从c++调用时不返回输出参数
- ODBC,SQL_SUCCESS_WITH_INFO,游标类型已更改 - 发生在具有单个 SELECT 的存储过程上
- SQL Server-使用C++ODBC调用存储过程
- 如何在POCO中获得存储过程的输出参数?