MySQL 用の標準 C++ ドライバー (MySQL Connector/C++) を使用した経験はありません。ただし、MySQL++ ドライバーを使用しました。
MySQL Connector/C++ のドキュメントはかなり不足しています。ただし、JDBC API に固執しようとしているように見えます。
Oracle サイトで JDBC のドキュメントを参照できます。
値を double に変換するのはかなり簡単だと思います。
sql::Connection* con;
//connection code, etc.
sql::Statement* stmt = con->createStatement();
sql::ResultSet* res = stmt->executeQuery("SELECT big_dec FROM test");
vector<double> results;
while (res->next())
{
//Allow the driver to convert it to double for you.
double res_double = res->getDouble("big_dec");
// You can use either numeric offsets...
cout << "num: " << res_double << endl;
results.push_back(res_double);
}
編集:
が適切に変換されていると言いますが、適切double
に挿入されていませんvector<double>
。
ループの後に次のことを直接試してください。
for (vector<double>::iterator it = results.begin(); it != results.end(); it++)
{
cout << *it << endl;
}
編集:
for
ループはすべてを正常に出力します。vector<double>
したがって、double が に正しく追加されていることがわかります。
どこかをコピーしようとしているように聞こえますがvector<double>
、適切に実行していません。
これを関数から返していますか?
編集:
問題は解決しました。vector
問題は別のところにありました。