2017-10-16 8 views
0

私はSQLクエリを構築するためにテンプレートクエリを使用しようとしました。サンプルコードは次のとおりです。mysqlpp:テンプレートクエリを使用するときのSQL構文エラー

unsigned int version = 2; 
try { 
    // key_version is INT UNSIGNED 
    mysqlpp::Query query = conn->query("SELECT * FROM agentlist WHERE key_version != %0q"); 
    mysqlpp::StoreQueryResult res = query.store(version); 
    // string type param also caused the same problem 
    // mysqlpp::StoreQueryResult res = query.store(std::to_string(version)); 
} catch (const exception &ex) { 
    // deal with exceptions 
} 

コードはcatchになります。 ex.what()

SQL構文に誤りがあります。ライン1

で\「2 \」近くで使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認し、私はそれがSQLQueryParmsタイプによって引き起こされたと思いますが、チュートリアルどちらもドキュメントが示していましたこれを回避する方法。

ところで、(テンプレートパラメータを代入して)解析されたクエリ文字列を取得するにはどうすればよいですか?私はquery.str(version)を試しましたが、query.str()と同じでした。

答えて

0

悪いです。重要な機能電話を忘れたquery.parse()

これですべて動作します。