答案 0 :(得分:8)
我遇到了类似的问题,程序会给出内存异常。以下是我要解决的问题:
std::string version = result->getString( COLUMN_NAME ).c_str();
这不起作用:
sql::SQLString sString = result->getString( COLUMN_NAME ); <<<memory exception
std::string version = sString;
答案 1 :(得分:4)
您确定任务列没有设置二进制排序规则吗?如果是这样,连接器可能会返回同一列的不同元数据。
<强>更新强>
另外,检查Connector是否已使用与项目相同的运行时进行编译。如果使用VS,我打赌另一个用/ MT编译,另一个用/ MD编译。这样,他们使用不同的堆,它将无法工作。
答案 2 :(得分:0)
以下代码对我有用:
sql::ResultSet *res;
res->getString("Column name").c_str();
using res->getString("Column name")
崩溃了我的应用程序。
答案 3 :(得分:0)
我在环境“ mysql-connector-c ++-8.0.13-win32”和Visual C ++ 2015中尝试从MySQL Connector/C++ Developer Guide / Getting Started with Connector/C++: Usage Examples / Complete Example 1运行演示源代码。
我也遇到了同样的问题。
在调试模式下,应使用
std::string version = result->getString( COLUMN_NAME ).c_str();
但是在发布模式下,可以:
sql::SQLString sString = result->getString( COLUMN_NAME );
我相信是因为我的项目必须与MySQL C ++连接器库在相同的运行时进行编译。