C ++ SQL Query Building Library

Я ищу библиотеку c ++, которая обеспечивает функциональность, аналогичную библиотеке c # SelectQueryBuilder

http://www.codeproject.com/Articles/13419/SelectQueryBuilder-Building-complex-and-flexible-S

то есть он позволяет избежать создания ужасных составных строк для формирования динамического 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

1

Решение

С 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();

или же

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

http://qt-project.org/doc/qt-5.0/qtsql/qsqlquery.html#approaches-to-binding-values

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]