J'utilise SOCI pour créer des connexions MYSQL à partir de mon application QT4 C++. Je pourrais coder en dur un IP, un nom d'utilisateur et un mot de passe de serveur de mysql mais je préférerais passer cette information en tant que variable à la place.Comment utiliser une variable dans une ligne d'argument?
Par exemple, je voudrais faire quelque chose comme ça, mais il n'y a pas de fonctions qui acceptent ces types de paramètres:
char host [9];
sprintf(host, "192.x.x.x");
session sql(mysql, "host=%s db=dbname user=user password=password", host);
J'ai aussi essayé:
string host = "192.x.x.x";
session sql(mysql,
boost::format("host=%1% db=dbname user=user password='pword'",
%host));
Mais cette tentative échoue également .
MISE À JOUR: J'ai pu résoudre le problème comme ceci:
QString connection;
connection.append("host=" + host +
" db=dbname user=" + uname +
" password=" + pword);
session sql(mysql, connection.toLatin1().data());
erreur: aucune fonction correspondante pour l'appel à 'soci :: session :: session (const soci :: mysql_backend_factory &, QString)' ??? pense qu'il a besoin d'un const const ??? – JonnyCplusplus
@user: après un bref coup d'oeil sur la documentation, je pense que vous devez utiliser .data()? – Peter