0

mysql++ ライブラリを使用してデータベースに接続します。接続とクエリを作成しました:

Connection conn(false);
conn.connect("database", "localhost", "user", "pass");
Query query = conn.query();

次に、次のようなクエリをデータベースに送信できます。

query << "select name from my_table1, my_table2 where age=20" 

しかし、私は20の代わりに数値変数を送信したいと思います.私はその方法でそれをやろうとしました:

std::stringstream ss; //create a stringstream
ss << my_number //add number to the stream
std::string number = ss.str();
query << "select name from my_table1, my_table2 where age="+number; 

残念ながら、うまくいきません。私の2番目の問題は類似しています。QPixmap オブジェクトを作成し (ここでは QPixmap は関係ありません)、コンストラクターに画像へのパスを指定する必要があります。

std:string name;
(...)
std::string path = "/home/root/img/"+name+".png"; //name is a variable string
QPixmap *tmp = new QPixmap(QString::fromUtf8(path.c_str())); //conversion from string to QString
4

2 に答える 2

3
query << "select name from my_table1, my_table2 where age="+number; 

次のようにする必要があります。

query << "select name from my_table1, my_table2 where age=" << number; 

+有効な C++ ストリーム連結演算子ではありません。

QPixmap の問題は何ですか? 多分それは別の質問であるべきですか?

于 2013-02-15T17:52:48.790 に答える
2

2番目の問題については、これから変更することをお勧めします。

std:string name;
(...)
std::string path = "/home/root/img/"+name+".png"; //name is a variable string

これに:

const QString name;
...
const QString path = QString("/home/root/img/%1.png").arg(name);
....
QPixmap tmp(path);
于 2013-02-15T18:27:22.190 に答える