Я использую SOCI для подключения MYSQL к моему приложению QT4 C++. Я мог бы жестко закодировать IP-адрес mysql, имя пользователя и пароль, но я предпочел бы передать эту информацию вместо переменной.Как использовать переменную в строке аргумента?
Например, я хотел бы сделать что-то вроде этого, но нет функции, которые принимают эти виды параметров:
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));
Но это также терпит неудачу ,
UPDATE: Я был в состоянии решить эту проблему следующим образом:
QString connection;
connection.append("host=" + host +
" db=dbname user=" + uname +
" password=" + pword);
session sql(mysql, connection.toLatin1().data());
ошибка: нет соответствующей функции для вызова в soci :: session :: session (const soci :: mysql_backend_factory &, QString) '??? Думаю, ему нужен const char ??? – JonnyCplusplus 2010-12-15 20:49:28