Я использую 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));
Но и это не помогает.
ОБНОВЛЕНИЕ: я смог решить проблему следующим образом:
QString connection;
connection.append("host=" + host +
" db=dbname user=" + uname +
" password=" + pword);
session sql(mysql, connection.toLatin1().data());