在 MySQL 连接器C++ API 中使用一个函数调用执行多个查询的正确方法是什么?
What is the proper way of executing multiple queries with one function call in MySQL Connector C++ API?
我是MySQL的新手,也是他们的C++API,我在一次执行多个查询而不是两次调用同一个函数时遇到问题,我的意思是我的查询有点链接,逻辑上它们应该立即执行。
例如,我曾经这样做过
sql::ResultSet* sqlExecute(std::string Query)
try
{
sql::ResultSet *res;
res = statement->executeQuery(Query);
return res;
}
catch (sql::SQLException& e)
{
if (e.getErrorCode())
outc("%c%s: [SQL %c%d%c]%c %sn", c_gray, my_time("WARN"), c_dark_purple, e.getErrorCode(), c_gray, c_dark_red, e.what());
return 0;
}
并这样称呼它(两次(
sqlExecute("alter table ###.players AUTO_INCREMENT = 1;");
sqlExecute("insert into ###.players (name, username, password) values('Random Name', 'imrandom', 'this should be random too');");
但是当我尝试仅使用一个由;
分隔的函数调用来执行它们时
sqlExecute("alter table ###.players AUTO_INCREMENT = 1;insert into ###.players (name, username, password) values('Random Name', 'imrandom', 'this should be random too');");
我得到例外
您的SQL语法有误;请查看与您的MySQL服务器版本相对应的手册,了解在"插入###.players(名称,用户名,密码("值("随机名称","imrand"在第1行(附近使用的正确语法
在MySQL Workbench中,我可以一次执行多个查询。为什么不在 API 中呢?
执行以分号分隔的多个语句的能力取决于启用的CLIENT_MULTI_STATEMENTS
连接属性:
sql::ConnectOptionsMap options;
options["CLIENT_MULTI_STATEMENTS"] = true;
sql::mysql::MySQL_Driver *driver = sql::mysql::MySQL_Driver::get_mysql_driver_instance();
sql::Connection *con = driver->connect(options);
相关文章:
- 在C++中异步执行 sql 查询
- 在 MySQL 连接器C++ API 中使用一个函数调用执行多个查询的正确方法是什么?
- 使用C 打开PHP页面(执行查询)
- 如何在 c++ 中设置 ODBC 连接以执行多个查询 (SQLExecDirect)
- 执行“提升几何图形”最近的查询始终首先按最小距离排序结果
- 在什么条件下,数据库在从 cpp 执行选择查询时不会关闭游标
- QODBC连接到SQL Server,但无法执行查询
- 执行子查询
- 正确重复使用ADODB命令对象执行多个查询
- 如何执行异步屏幕外查询
- 使用用户定义的函数对循环/对称值执行Sqlite(C API)和查询(选择)
- C++ 和SQLite - 如何执行由用户输入形成的查询
- 如何使用oracle在sqlapi++中执行多个查询
- 无法使用 Oracle ODBC 执行查询
- 关于条件C++如何执行的简单查询
- 在终止/非活动会话上执行简单查询需要几分钟时间
- 程序在每次执行查询时挂起
- 非常长的查询执行使用c++, Sql Server和ODBC连接
- 插入两个相互引用的SQL表,而无需执行单独的查询
- 每次执行查询时都有新的连接