私はPoco::Data User Manualを読んでおり、ライブラリには複数の結果セットがサポートされていることが言及されています。このサポートの例はマニュアルのMultiple Data Setsセクションにあります。Poco :: Dataで複数の結果セットを取得するには?
typedef Tuple<std::string, std::string, std::string, int> Person;
Person pHomer, pLisa;
int aHomer(42), aLisa(10), aBart(0);
session << "SELECT * FROM Person WHERE Age = ?; "
"SELECT Age FROM Person WHERE FirstName = 'Bart'; "
"SELECT * FROM Person WHERE Age = ?",
into(pHomer, 0), use(aHomer),
into(aBart, 1),
into(pLisa, 2), use(aLisa),
now;
しかし、この例は、ライブラリでデータを取得するためにサポートされている方法のうちの1つについてのみです。 RecordSets, Iterators and Rowsセクションにデータを取得する2つ目の方法があります。
Statement select(session); // we need a Statement for later RecordSet creation
select << "SELECT * FROM Person", now;
// create a RecordSet
RecordSet rs(select);
std::size_t cols = rs.columnCount();
// print all column names
for (std::size_t col = 0; col < cols; ++col)
std::cout << rs.columnName(col) << std::endl;
// iterate over all rows and columns
for (RecordSet::Iterator it = rs.begin(); it != rs.end(); ++it)
std::cout << *it << " ";
Iは、データをフェッチするための第二の方法を使用しポコ::データラッパーを有し、私は複数の結果セットをサポートするためにそれを拡張しなければなりません。 RecordSetインターフェイスを使用して複数の結果セットを取得する方法と可能性がありますか?
はワーズ:
複数の結果セットは、ストアド・プロシージャ・コールの結果であり、このため、それだけで選択毎に複数書オブジェクトを使用することは不可能です。
残念ながら、* Poco :: Data *の包括的なラッパーでは、返されるデータがどのように見えるかはわかりません。あなたはそのような機能要求を受け入れると思いますか? – bobeff
確かに、機能要求は受け入れられます。しかし、実装の時間枠は未定義です。 – Alex