我构建了一个数据库和一个表,如下所示
我想获取类型为String的第1列的数据,因此我使用了一些c++代码,如下所示
#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列。
仅提示程序结束。
我认为如果我可以获取第二列,我就可以获取第一列。
所以getString()方法一定是你解决这个问题的wrong.Can?谢谢!
发布于 2016-10-24 01:54:47
我遇到了同样的问题,你必须对getString的返回值调用c_str()函数,我不确定是什么原因,似乎没有任何东西显示这一点,但这样做可以解决这个问题。
例如。
res->getString("s").c_str();https://stackoverflow.com/questions/38886487
复制相似问题