我使用mysql数据库和Connector.C++ 1.1来进行数据读取,我的数据库如下现在我想要把这个数据中的string类型的那一列取出来,我用了下列代码
#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类型的数据,但是在取String类型的数据的时候出现了下列错误我用try catch语句,发现它的错误是bad allocation,所以我想问问大神到底该如何从mysql数据库中取出string类型的数据,谢谢!
#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类型的数据,但是在取String类型的数据的时候出现了下列错误我用try catch语句,发现它的错误是bad allocation,所以我想问问大神到底该如何从mysql数据库中取出string类型的数据,谢谢!
sql::Statement *stmt
sql::ResultSet *res;
// ...
stmt = con->createStatement();
// ...res = stmt->executeQuery("SELECT id, label FROM test ORDER BY id ASC");
while (res->next()) {
// You can use either numeric offsets...
cout << "id = " <&;t; res->getInt(0);
// ... or column names for accessing results. »
The latter is recommended.
cout << ", label = '" << »
res->getString("label") << "'" << endl;
}delete res;
delete stmt;
delete con;