C++使用sql连接器获取元数据,而不需要太多数据

C++ with sql connector getting metadata without asking for to much data

本文关键字:不需要 太多 多数据 元数据 使用 sql 连接器 获取 C++      更新时间:2023-10-16

我刚刚开始在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中选择*"这将按照它所说的进行,并将结果限制为一。