我使用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
答案 0 :(得分: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有什么问题?也许这应该是一个单独的问题?
答案 1 :(得分: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);