0
私はMySQLデータベースでクエリを実行するQTアプリケーションを構築しています。私はquery.exec("call SelectUsersPhotos()")
を返すだけですが、回答コードはprepare
に設定すると、データベースの値が返されず、エラーもスローされません。Qt mysql query prepareが動作しない
if (db.open()) {
cout << "Querying GetUserPhotos from user " << user->Name << endl;
QSqlQuery query;
query.prepare("call SelectUsersPhotos()");
query.exec();
while (query.next()) {
UserPhoto *userPhoto = new UserPhoto();
userPhoto->UserPhotoId = query.value(0).toInt();
userPhoto->UserId = query.value(1).toInt();
userPhoto->Created = query.value(2).toDateTime();
userPhoto->Name = query.value(3).toString().toStdString();
usersPhotos->push_back(userPhoto);
}
query.finish();
db.close();
cout << "Photos " << usersPhotos->size() << endl;
}
資源:http://qt.developpez.com/doc/4.6/qsqlquery/
query.prepareは真を返しますが、それでも何も返されません。 –
クエリが無効で、おそらく - 何らかの遅延の後に突然有効にならない場合、なぜあなたは永遠にループする危険がありますか?悪いアドバイスのようです。 '!='値のアドレスを参照します。 refは最適化され、値なしのアドレスに置き換えられます。指示対象のアドレスが取られた場合、それは異なっている。より多くの点: 'const&'は一時的な値に結びつくだけで、参照のスコープまで生涯拡張されます。例えば'std :: string'を使って関数に右辺値を渡したことはありませんか?それはうまく動作します。したがって、それは質問される質問には関係しません。 –