2013-10-09 45 views
2

因此,這不適用於mysql_query。在C++項目中使用mysql_query執行多個查詢

我嚴格使用C++,我不使用php。

我希望執行這個雙重查詢,以便在事務系統中始終有一個唯一標識,併發用戶創建標識。它可以在MySql DataBase中完美工作,但我需要將它添加到Eclipse(我正在使用Ubuntu 12.04 LTS)。

我的應用程序是相當大的,我不想更改爲mysqli,如果這是可能的,但如果沒有其他方式,它會好的。

你能幫我嗎?提前致謝。

+0

有人需要我給一個更大的snipet代碼?我很樂意這樣做。你可以幫我嗎?謝謝。 –

回答

1

根據MySQL的C API文檔:

MySQL的5.6還支持一個包含多個由分號分隔 語句的字符串的執行(「;」)字符。通過使用mysql_real_connect()將 連接到服務器或連接 調用`mysql_set_server_option()時指定的特殊選項來啓用此功能 。

和:

CLIENT_MULTI_STATEMENTS使的mysql_query()和mysql_real_query() 執行包含多個語句的語句串由分號分隔 。此選項也隱式啓用CLIENT_MULTI_RESULTS ,因此CLIENT_MULTI_STATEMENTS的標誌參數爲 mysql_real_connect()等效於參數爲 CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS。即, CLIENT_MULTI_STATEMENTS足以啓用多語句 執行和所有多結果處理。

因此,假設您使用mysql_real_connect設置您的mysql連接有點不同,那麼您可以在單個mysql_query()調用中提供多個語句,並用分號分隔。 你需要通過以下標誌作爲最後一個參數:CLIENT_MULTI_STATEMENTS,其文檔說:

告訴客戶端可以在 單個字符串發送多條語句的服務器(由「;」分隔)。如果這個標誌沒有設置, 多語句執行被禁用。有關此標誌的更多信息,請參閱此 表後面的註釋。

查看C API Support for Multiple Statement Execution22.8.7.53. mysql_real_connect()瞭解詳情。

+0

感謝您的回答。我將參考C API支持擴展查詢。親切的問候。 –