首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >resultset::getString()方法出错

问resultset::getString()方法出错
EN

Stack Overflow用户
提问于 2016-08-11 10:48:15
回答 1查看 434关注 0票数 0

我构建了一个数据库和一个表,如下所示

enter image description here

我想获取类型为String的第1列的数据,因此我使用了一些c++代码,如下所示

代码语言:javascript
复制
#include <iostream>
#include <map>
#include <string>
#include <memory>
#include "mysql_driver.h"
#include "mysql_connection.h"
#include "cppconn/driver.h"
#include "cppconn/statement.h"
#include "cppconn/prepared_statement.h"
#include "cppconn/metadata.h"
#include "cppconn/exception.h"

using namespace std;
using namespace sql;

int main()
{
    sql::mysql::MySQL_Driver *driver = 0;
    sql::Connection *conn = 0;

    try
    {
        driver = sql::mysql::get_mysql_driver_instance();
        conn = driver->connect("tcp://localhost:3306/jwsystem", "root", "123456");
        cout << "success" << endl;
    }
    catch (...)
    {
        cout << "fail" << endl;
    }
    sql::Statement* stat = conn->createStatement();
    stat->execute("set names 'gb2312'");
    ResultSet *res;
    res = stat->executeQuery("SELECT * FROM sss");
    while (res->next())
    {
        cout << "ss\t" << res->getInt("ss") << endl;
        cout << "s\t" << res->getString("s") << endl;
    }

    if (conn != 0)
    {
        delete conn;
    }
    system("pause");
}

我可以获取类型为Int的第1列,但无法获取类型为String的第2列。

enter image description here

仅提示程序结束。

我认为如果我可以获取第二列,我就可以获取第一列。

所以getString()方法一定是你解决这个问题的wrong.Can?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-10-24 01:54:47

我遇到了同样的问题,你必须对getString的返回值调用c_str()函数,我不确定是什么原因,似乎没有任何东西显示这一点,但这样做可以解决这个问题。

例如。

代码语言:javascript
复制
res->getString("s").c_str();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38886487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档