코드는 다음과 같습니다
uint32 GetNumber()
{
string strQuery = "CALL Proctest(3);";
int ret = mysql_query (DatabaseConnection, strQuery.c_str());
if (ret != 0)
return 0;
uint32 uRowNum = 0;
MYSQL_RES* Result = mysql_store_result(DatabaseConnection);;
if (Result == NULL)
return 0;
else
uRowNum = (uint32)mysql_num_rows(Result);
mysql_free_result(Result);
return uRowNum;
}
코드는 위와 같습니다
위의 함수를 처음 호출할때는 제대로 결과가 나오는데 두번째 호출때에는 mysql_query 가 실패하는것입니다
MySql서버에는 ProcTest라는 간단한 프로시저를 이미 만들어 놓았구요
MySql Query Browser에서 이 프로시저 호출하면 아무리 여러번 호출하여도 아주 잘 동작하거든요
근데 C++에서 우의 함수를 호출하여 사용하고자 하면 왜 두번째 호출부터 에러가 뜨는것일가요?
인터넷에서 더러 자료를 보니 프로시저를 사용하려면 첨에 mysql_real_connect를 사용하여 mysql서버에 접속할때 마지막 파라미터로서 CLIENT_MULTI_STATEMENTS를 주어야 한다고 하길래 그렇게 주어도 보았습니다
그런데 그렇게 주나 안주나 결과는 한가지네요
초보대왕님의 성의 있는 답변에 감사드립니다
다시한번 부탁드립니다
* 가능하면 메신저부탁드립니다(ro80516@hotmail.com)
|