DuckDB C++ 参数化查询教程:使用预处理语句和参数占位符
在 DuckDB C++ 中进行 SQL 参数化查询的方式是使用预处理语句和参数占位符。以下是一个简单的例子:
#include "duckdb.hpp"
#include <iostream>
using namespace duckdb;
using namespace std;
int main() {
DuckDB db("");
// create table
db.Query("CREATE TABLE test(id INTEGER, name VARCHAR)");
// prepare statement with parameter
PreparedStatement statement(db, "INSERT INTO test VALUES (?, ?)");
// bind parameters
statement.Bind<int32_t>(0, 1);
statement.Bind<const char *>(1, 'John');
// execute statement
statement.Execute();
// prepare statement with parameter
PreparedStatement select_statement(db, "SELECT * FROM test WHERE id = ?");
// bind parameter
select_statement.Bind<int32_t>(0, 1);
// execute statement and print result
auto result = select_statement.Execute();
while (result->Fetch()) {
cout << "id: " << result->GetValue<int32_t>(0) << ", name: " << result->GetValue<string>(1) << endl;
}
return 0;
}
在这个例子中,我们首先创建了一个名为 test 的表格。然后,我们准备了一个带参数的插入语句,使用问号作为参数占位符。我们绑定了两个参数值:id 为 1,name 为 'John'。然后我们执行了该语句。
接下来,我们准备了一个带参数的选择语句,使用问号作为参数占位符。我们只绑定了一个参数值:id 为 1。我们执行该语句,并打印结果。
在这个例子中,我们使用了 PreparedStatement 类来准备 SQL 语句并绑定参数。它还提供了其他常用的功能,如批量插入。
原文地址: https://www.cveoy.top/t/topic/nAMs 著作权归作者所有。请勿转载和采集!