У меня есть _bstr_t
строка, и у меня есть wchar_t
и одна unsigned int
переменная, которую я хочу поместить в строку ...
_bstr_t strCnn("Driver={SQL Server};Server=some_host,some_port;Database=some_db;User ID=some_user;Password=some_psw;");
wchar_t *host,
unsigned int port,
wchar_t *db_name,
wchar_t *user,
wchar_t *password,
Эти 5 переменных я передаю функции, которая делает соединение. Подскажите, пожалуйста, как мне вставить их в строку подключения.
Я пробовал так:
wstring ws(host);
string host_str(ws.begin(), ws.end());
wstring ws_db(db_name);
string db_str(ws_db.begin(), ws_db.end());
wstring ws_user(user);
string user_str(ws_user.begin(), ws_user.end());
wstring ws_psw(password);
string psw_str(ws_psw.begin(), ws_psw.end());
std::string port_str = std::to_string(port);
_bstr_t strCnn("Driver={SQL Server};Server="+host_str+","+port_str+";Database="+db_str+";User ID="+user_str+";Password="+psw_str+";");
Но там написано:
Error E0289 no instance of constructor "_bstr_t::_bstr_t" matches the argument list
Error C2664 '_bstr_t::_bstr_t(const _bstr_t &) throw()': cannot convert argument 1 from 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' to 'const char *'