2

私はでチュートリアルを読みました、そして私は一般的にそれがどのように機能するかを理解します:http: //tangentsoft.net/mysql++/doc/html/userman/tutorial.html#simple

このmysql++コードをビルドしようとしていますが、エラーが発生します。

std::ostringstream query3;
query3<<"select pipe_id from pipe where version_id='"<<id<<"'";
std::storeQueryResult ares=query3.store();

for(size_t i=0;i<ares.num_rows();i++)   
   cout<<ares[i]["version_id"]<<ares[i]["pipe_id"]<<std::endl;

mysql_query(&mysql,query3.str().c_str());

エラーはstore、のメンバーではないということですostringstream。問題を修正する方法がわかりません。


こんにちはマーリン、

コードと私の問題を見てくれてありがとう。

上記のコードを試しましたが、エラーが発生します

エラー:非クラスタイプ「MYSQL*」である「接続」のメンバー「クエリ」の要求

このコード行

// Construct a query object with the query string mysqlpp::Query query = 
connection.query(query_string);

私が間違っているところを親切に助けますか?

4

1 に答える 1

6

問題は、ostringstreamではなく、mysql++クエリオブジェクトを使用してクエリを実行する必要があることです。ostringstreamを使用すると、クエリ文字列を作成できますが、クエリを実行することはできません。

基本的な使用法を示すチュートリアルがあります:http: //tangentsoft.net/mysql++/doc/html/userman/tutorial.html#simple

コードから機能するクエリに到達するには、動的クエリを取得して文字列に変換し、それを使用してmysql++クエリオブジェクトを構築する必要があります。

// todo: create the connection here

// Construct the query string.  You were already doing this in your code
std::ostringstream query_builder;
query_builder << "select pipe_id from pipe where version_id='" << id << "'";

// Convert the ostringstream to a string
std::string query_string = query_builder.str();

// Construct a query object with the query string
mysqlpp::Query query = connection.query(query_string);

// Perform the query
mysqlpp::StoreQueryResult result = query.store();
for(size_t i = 0; i < result.num_rows(); i++)
   std::cout << result[i]["version_id"] << result[i]["pipe_id"] << std::endl;
于 2010-09-23T21:55:28.123 に答える