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; 

不幸的是,它不起作用。我的第二个问题是类似的。我创建了一个 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

对于您的第二个问题,我建议您将其更改为:

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 回答