poco 라이브러리 버전 1.4.6에 사용하고 있습니다.출력 매개 변수를 POCO의 저장 프로 시저로 가져 오려면 어떻게해야합니까?
데이터베이스 연결, 저장 프로 시저 호출 및 매개 변수 생성 프로그램을 만들고 싶습니다.
먼저이 값을 선택합니다.
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;
왜 예외가 발생합니까? 나는 이해하지 못한다. 왜냐하면 나는 영어로.. 거리지 않아.
나 같은 다른 질문을 찾았습니다. 다른 사용자는 나와 달리했습니다.
나는 이유가 내가 영어를 잘하지 않는다고 생각한다. 그래서 poco 문서를 배우기가 어렵습니다.
저장 프로 시저를 사용하고 출력 매개 변수를 가져오고 싶습니다.
도와주세요!