\brief Convert buffer of SqlWchar to standard string \param[in] wchar_msg SqlWchar to convert \param[in] msg_len Number of characters in wchar_msg \return wchar_msg in std::string format
| 95 | /// \param[in] msg_len Number of characters in wchar_msg |
| 96 | /// \return wchar_msg in std::string format |
| 97 | inline std::string SqlWcharToString(SQLWCHAR* wchar_msg, SQLINTEGER msg_len = SQL_NTS) { |
| 98 | if (msg_len == 0 || !wchar_msg || wchar_msg[0] == 0) { |
| 99 | return std::string(); |
| 100 | } |
| 101 | |
| 102 | thread_local std::vector<uint8_t> utf8_str; |
| 103 | |
| 104 | if (msg_len == SQL_NTS) { |
| 105 | arrow::flight::sql::odbc::WcsToUtf8((void*)wchar_msg, &utf8_str); |
| 106 | } else { |
| 107 | arrow::flight::sql::odbc::WcsToUtf8((void*)wchar_msg, msg_len, &utf8_str); |
| 108 | } |
| 109 | |
| 110 | return std::string(utf8_str.begin(), utf8_str.end()); |
| 111 | } |
| 112 | |
| 113 | /// \brief Convert vector of SqlWchar to standard string |
| 114 | /// \param[in] wchar_vec SqlWchar vector to convert |