我正在使用 SOCI 从我的 QT4 C++ 应用程序建立 MYSQL 连接。我可以对 mysql 服务器 IP、用户名和密码进行硬编码,但我宁愿将此信息作为变量传递。
例如,我想做这样的事情,但是没有接受这些参数的函数:
char host [9];
sprintf(host, "192.x.x.x");
session sql(mysql, "host=%s db=dbname user=user password=password", host);
我也试过:
string host = "192.x.x.x";
session sql(mysql,
boost::format("host=%1% db=dbname user=user password='pword'",
%host));
但这也失败了。
更新:我能够像这样解决问题:
QString connection;
connection.append("host=" + host +
" db=dbname user=" + uname +
" password=" + pword);
session sql(mysql, connection.toLatin1().data());
最佳答案
尝试使用 QString 的 arg 函数。
session sql(mysql, QString("host=%1 db=%2 user=%3 password=%4").arg(sqlserver).arg(dbname).arg(user).arg(password));
我知道这很丑陋,Qt 应该想出一个更漂亮的解决方案,但它确实有效。
关于c++ - 如何在参数行中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4454640/