我正在尝试使用 OTL 对 sql server db 进行基本插入。对于这个插入,我不需要绑定任何参数。
otl_stream o_stream;
std::string query = "INSERT INTO common VALUES (1,2,3);";
o_stream.open(1, query.c_str(), db_);
o_stream.flush();
o_stream.close();
但是,即使在刷新和关闭 otl_stream 之后,数据库仍被锁定在该表上(无法通过单独的应用程序读取)。我必须关闭我的 otl 应用程序才能解锁表。
如果我参数化插入语句,那么一切都会正常工作(插入成功,没有表锁定)。
otl_stream o_stream;
std::string query = "INSERT INTO common VALUES (1,2,a:<int>);";
o_stream.open(1, query.c_str(), db_);
o_stream << 3;
这并不理想,因为理想情况下,如果没有必要,我想避免参数化/绑定。有什么建议么?
编辑:
下面回答