如何在编译时检测 C++ 代码中的 SQL 错误
How to detect SQL errors in c++ code at compile time
所以,我希望SQL错误阻止C++代码成功构建。
我的想法是通过一些 cmake 脚本或将 crep 文件用于 SQL 并验证 SQL 的东西进行编译。
我知道我可以添加某种运行时错误检查,但我不希望以下代码成功构建(不是关于 pqxx 的问题,而是一般C++ SQL 错误(:
#include <iostream>
#include <pqxx/pqxx>
using namespace std;
using namespace pqxx;
int main() {
connection conn("dbname=d user=u");
conn.prepare("invalid_sql", "SELECT 1 FROM WHERE a = $1");
nontransaction txn(conn);
txn.prepared("invalid_sql")(1.0).exec();
cout << "the process already died due to invalid SQL" << endl;
return 0;
}
你可以
,有点...
一种方法是 Boost meta_parsing,另一种方法是使用 C++11 的用户定义文本类型。我找不到SQL的工作示例,但也许随着C++11的成熟,有人会想出一个。
结束这个问题。 另一个答案很好,但这不是我所做的。
我决定做的是将准备好的语句放在 init_sql(( 方法中,并使用 boost/test/unit_test.hpp 对带有 jenkins 的复制数据库调用它,该数据库提供单元测试失败的通知。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何在C++代码中连接 SQL Server 数据库
- 此代码是否容易受到 SQL 注入的攻击?我该如何使其安全
- 如何在编译时检测 C++ 代码中的 SQL 错误
- 存储C++应用程序的 SQL 代码的位置
- 如何优化涉及大量sql查询的Qt代码块
- 在sql中使用c++代码中的变量
- UDF调用SQL Server内部的外部C++代码