2013-10-08 195 views

回答

0

因此,我只是檢查出this,它看起來像使用模板查詢部分是將SQL語句傳遞給MySQL ++的方式。所以我想這應該是部分使用MySQL ++創建MySQL語句的途徑。

// Establish the connection to the database server. 
    mysqlpp::Connection con(mysqlpp::examples::db_name, 
      cmdline.server(), cmdline.user(), cmdline.pass()); 

    // Build a template query to retrieve a stock item given by 
    // item name. 
    mysqlpp::Query query = con.query(
      "select * from stock where item = %0q"); 
    query.parse(); 

此外,爲應對:

是它像一個真正的MySQL的聲明?

發生了什麼事情是編譯器正在把你的C++代碼包含你想要執行的語句,然後與你的MySQL數據庫進行通信,在這一點上使用'真實'的SQL語句。

+0

首先,謝謝德魯的回覆。問題是我正在查看庫內部,並且在將語句發送到要編譯的服務器時,我沒有看到它。我擔心它只是解析語句並像簡單的查詢那樣執行它。 – yosbel

+0

歡迎。並陷入困境。所以你擔心你的查詢可能不會被處理MySQL ++庫中的查詢的代碼正確執行? – Drew

+0

我擔心執行時間更多,如果語句作爲查詢執行而不是編譯語句。 :) – yosbel

0

最直接的方法是使用Connection類的query()公共成員函數。

使用模板並不是真正的需要,儘管如果你願意的話也可以。

query()函數將SQL語句作爲字符串值並返回Query對象。

類查詢功能定義如下:

  • 查詢(常量的std :: string & QSTR)
  • 查詢(爲const char * QSTR = 0)

你可以在reference guide找到很多細節。

+0

感謝您的答覆Dave,你知道MySQL ++中的mysqlpp :: MultiStatementsOption是什麼意思嗎? – yosbel