C++ SQL查询生成库 我正在寻找一个C++库,它提供了类似于C SelectQueryBuilder库的功能。

C++ SQL查询生成库 我正在寻找一个C++库,它提供了类似于C SelectQueryBuilder库的功能。,c++,sql,qt,selectquerybuilder,C++,Sql,Qt,Selectquerybuilder,i、 e.它允许人们不用构建可怕的连接字符串来形成动态SQL查询,而是使用一个库来提供一个接口,通过该接口,您可以传递表、要从表中选择的元素等,并将SQL查询作为字符串返回 非常感谢您的帮助 编辑:我正在构建的示例查询…在运行时之前,我们不知道要选择的实际列,例如,不知道将有多少个VAR1…VARx,以及它们的具体内容 SELECT * FROM ( SELECT table_1.id, table_2.name,

i、 e.它允许人们不用构建可怕的连接字符串来形成动态SQL查询,而是使用一个库来提供一个接口,通过该接口,您可以传递表、要从表中选择的元素等,并将SQL查询作为字符串返回

非常感谢您的帮助

编辑:我正在构建的示例查询…在运行时之前,我们不知道要选择的实际列,例如,不知道将有多少个VAR1…VARx,以及它们的具体内容

SELECT * FROM 
    (
        SELECT 
            table_1.id, 
            table_2.name, 
            (select(COALESCE(sum(table_1.col_1 * 1.0) / NULLIF(sum(table_1.col_2 - table_1.col_3),0) * 100,0))) as VAR1, 
            (select(COALESCE(sum(table_1.col_4 * 1.0) / NULLIF(sum(table_1.col_5),0) * 100,0))) as VAR2, 
            sum(table_1.col_2) as VAR3 
        FROM table_1, table_2 
        WHERE table_1.id = table_2.id 
        GROUP BY table_1.id, table_2.name 
    ) VARIABLES 
WHERE VAR3 > 1000

使用QSqlQuery,您可以使用占位符并将值绑定到占位符:

QSqlQuery query;
query.prepare("INSERT INTO person (id, forename, surname) "
              "VALUES (:id, :forename, :surname)");
query.bindValue(":id", 1001);
query.bindValue(":forename", "Bart");
query.bindValue(":surname", "Simpson");
query.exec();


这看起来非常适合我的需要。谢谢。我忘了问是否可以嵌套查询/值并动态添加绑定?i、 e如果我想要从表_1中选择[],其中[]将在运行时分配,并且是我想要选择的值的列表?值绑定在运行时完成,我认为您可以在for循环中使用addBindValue。如果您发布了一些代码,我可以进一步帮助您。我添加了我正在处理的示例查询,尽管实际示例从数据库中选择了更长的列表。我目前通过将字符串连接在一起来创建它们,但显然我更希望能够使用您建议的绑定方法。哦,我明白了,您不仅需要绑定值,还需要创建变量查询。我在Qt里没见过这样的东西。我检查了文档,但只有值绑定方法,没有准备长语句。
QSqlQuery query;
query.prepare("INSERT INTO person (id, forename, surname) "
              "VALUES (?, ?, ?)");
query.addBindValue(1001);
query.addBindValue("Bart");
query.addBindValue("Simpson");
query.exec();