2010-02-28 43 views
0

我在使用C API調用MySQL服務器上的存儲過程時遇到問題。從C API調用MySQL存儲過程的問題

我使用的mysql_query(&手柄,「CALL myprocedure」),但該函數將失敗(返回1)和錯誤查找給出 以下消息「過程myprocedure不能返回在給定上下文的結果集。」 我甚至試圖使用mysql_real_query insted,但沒有更好的。

我見過這個bug的幾個主題,但只有PHP相關。所以C程序似乎也有同樣的問題。

奇怪的是我的存儲過程甚至不應該返回任何結果集。它只適用於表中的數據,並不真正返回任何內容。

感謝您的任何建議。

回答

1

參考功能:
mysql_set_server_option()&
mysql_real_connect()
here.

多個語句纔有效(暫時)使用MYSQL_OPTION_MULTI_STATEMENTS_ON和_OFF參數 到mysql_set_server_option()。

的這裏的問題是,在 mysql_real_connects CLIENT_MULTI_STATEMENTS() 式地開啓CLIENT_MULTI_RESULTS,也不過 MYSQL_OPTION_MULTI_STATEMENTS_ON不僅使多條語句, 多個結果。

因此,請在連接上添加CLIENT_MULTI_STATEMENTS並重試。

+0

嗯,我沒有在我的mysql_real_connect標誌,但是當我添加CLIENT_MULTI_STATEMENTS時,它突然開始工作......雖然怪異......但至少現在它的工作......謝謝 – NumberFour 2010-02-28 18:28:42

0

您是否嘗試從'mysql'命令行客戶端調用此過程?
您是否可以調用(另一個)空過程來測試問題是否與過程相關?

+0

是的,我試過,但它的工作原理... 但是我已經通過在mysql_real_connect中添加CLIENT_MULTI_STATEMENTS標誌來解決該問題。 但無論如何謝謝你回答 – NumberFour 2010-02-28 18:30:08