从数据库中选择记录并插入到c++映射中
select records from db and insert into C++ map
有人建议我一个很好的例子或链接,从MySQL中选择记录,并将记录插入到地图中,这样我就可以在c++中进行分析。我试图从数据库拉价格数据,所以我有一个交易日期和销售价格。我不想通过中间步骤,将记录写入。csv文件。
谢谢!
我不能让它与sql::Connection工作,所以我使用了API。我试图提取日期和销售$'s从数据库,其中也有其他领域。下面是我的代码:
#include <iostream>
#include </usr/include/mysql/mysql.h>
#include </usr/include/sys/time.h>
using namespace std;
#include <vector>
#include <iterator>
#include <string>
#include <map>
MYSQL *connection;
MYSQL mysql;
MYSQL_RES *resptr;
MYSQL_ROW row;
MYSQL_FIELD *field;
int query_state;
map<string, double> test;
string key;
double value;
int main()
{
mysql_init(&mysql);
connection = mysql_real_connect(&mysql,"localhost","userid","pwd","schema",0,0,0);
query_state = mysql_query(connection, "select pdate, sales from test;");
resptr = mysql_store_result(connection);
while ( ( row = mysql_fetch_row(resptr)) != NULL )
{
test[resptr->getString("pdate")]=resptr->getInt("sales");
}
mysql_free_result(resptr);
mysql_close(connection);
return 0;
}
,但我得到以下错误:
error: ‘struct MYSQL_RES’ has no member named ‘getString’
error: ‘struct MYSQL_RES’ has no member named ‘getInt’
您将需要使用c++连接器。你可以从这个链接下载。
这是你开始的wiki页面。
编辑:我没有测试过这个自己,但这样的东西应该工作:
map<int, string> results;
sql::mysql::MySQL_Driver* driver = sql::mysql::get_mysql_driver_instance();
sql::Connection* con = driver->connect("tcp://127.0.0.1:3306", "user", "password");
sql::Statement* stmt = con->createStatement();
sql::ResultSet* res = stmt->executeQuery("SELECT id, label FROM test ORDER BY id ASC");
while (res->next())
{
results[res->getInt("id")] = res->getString("label");
}
delete res;
delete stmt;
delete con;
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 预处理器:插入结构名称中的前一个行号
- 在未初始化映射的情况下,将值插入到映射的映射中
- 如何在c++中只将键插入到bimap的一侧
- 如何将结构插入到集合中并打印集合的成员
- C++json插入数组
- Visual Studio 2019:插入多个C++风格的单行注释
- nlohmann-json将一个数组插入到另一个数组中
- 有效地使用std::unordered_map来插入或增加键的值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 正在插入动态数组
- 插入或删除时获取usb的dos_name
- 叮叮当当在修复时插入多个"覆盖"说明符
- 链表c++插入,所有情况都已检查,但没有任何工作
- 将重物插入std::map
- C++17 - 使用自定义分配器的节点提取/重新插入 - 适用于 clang++/libc++,但不适用于 libstd
- 在数字之间插入 + 或 - 符号以使其等于整数
- 在字符串中插入空格
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?