C++使用sql连接器获取元数据,而不需要太多数据
C++ with sql connector getting metadata without asking for to much data
我刚刚开始在C++(和sql)中使用sql连接器。我需要从数据库中的对象中编写一堆头文件。(MariaDB,但如果它能在所有sqldbs上工作,那就太好了)到目前为止,我的解决方案是使用获取表名
res = stmt->executeQuery("SHOW TABLES from " + dbname);
其中dbname是用户输入的字符串。我将数据存储在一个名为tablenames的向量中,供以后使用,并按如下方式使用:
for(std::string table :tablenames){
delete stmt; //freeing memory and attach new information to it
delete res;
std::string query;
query = "SELECT * from " + table + ";";
stmt = con->createStatement();
res = stmt ->executeQuery(query);
std::cout << query << "n";
//using metadata for getting information or passing it to another method
}
它还没有准备好,但会起作用,但我从数据库中提取的信息比我需要的要多得多。我只想从数据库中取出1行(或者可能只是表信息),并访问元数据来检索头文件所需的信息(如列标签、列类型名称和显示大小)。所以我的问题是,我的解决方案产生了太多的流量,尤其是当我在大型数据库中运行这个解决方案时。我找到了一些解决方案WHERE id = 1
但我不能保证表中有id(或其他什么)。我希望你能帮我找到一个更好的解决方案。
使用limit关键字。"从表LIMIT 1中选择*"这将按照它所说的进行,并将结果限制为一。
相关文章:
- 为什么 Boost unordered_map 在第一次插入时需要太多时间?
- 如何在不设置 ulimit -n 的情况下解决套接字程序打开太多文件的错误
- opencv+SaperaLT++ 多个不需要的窗口与垃圾名称
- 当类不需要重写从多个基继承的方法时该怎么办
- 为什么在"cin"后使用 "getline" 时需要 cin.ignore(),而多次使用 "cin" 时不需要?
- 从文件的开头读取,而不会浪费太多内存
- C++使用sql连接器获取元数据,而不需要太多数据
- 一个粒子太多:GL_INVALID_VALUE生成错误。<start> 不满足着色器存储缓冲区的最低对齐要求
- MYSQL连接太多错误不会消失
- GCC 构建时间不会从预编译标头中受益太多
- 如何处理dervied类的多个重载,而不需要对其他文件进行多次更改
- 保存未知数量的整数,而不会花费太多时间/内存
- 如何在不使用太多内存的情况下链接大量的c++对象文件
- 插入到unordered_map需要太多时间
- 在c++中执行多个相关错误检查的优雅方式,不需要goto,也不需要提前返回
- 使用Windows和c++的chrono为每个人安排一个1毫秒的事件——我是不是要求太多了?
- 创建多个对象而不需要多个声明
- 有没有一种好的方法可以将数据从python上下文发送到c++,而不涉及太多的复制?
- 在类中创建运算符+而不声明太多不必要的变量的最佳方法
- 在堆栈上分配16kb是不是太多了?