MySql C ++连接器getString()无法正常工作,而getInt工作正常

时间:2011-01-27 22:58:13

标签: c++ mysql database-connection

4 个答案:

答案 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 ++连接器库在相同的运行时进行编译。