使用 MYSQL ODBC 连接器的命令不同步
Commands out of sync USING MYSQL ODBC CONNECTOR
在游标操作后调用 select 语句时,我得到:命令不同步,您现在不能 运行 此命令。以下只是用于测试目的的存储过程的粗略片段。
如果它使用游标但没有 "SELECT" 语句,则一切正常。
CREATE PROCEDURE TestOne()
BEGIN
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
DECLARE cur_textCursor CURSOR FOR ( SELECT 1 );
OPEN cur_textCursor ;
IF done THEN
CLOSE textCursor ;
END IF;
SELECT 1;
END
Using MySQL ODBC 5.3 ANSI Driver
MySQL version 5.5
更新:
上述问题在我的 Sql ODBC 连接器 5.1 驱动程序中运行良好。
它仍然是我的 Sql ODBC 连接器 5.3 ANSI 驱动程序中的错误
这里有一个关于此问题的未解决错误:
http://bugs.mysql.com/bug.php?id=71431
虽然您的案例在 Connector/ODBC 5.1 中有效,但在 5.2 和 5.3 版中您需要将附加查询包装在 BEGIN..END 块中。
这可能是一个可以修复的错误,但简单的解决方法是像上面那样包装它或使用 Connector/ODBC 5.1.
我的这个修复:
ODBC -> 选项卡系统 DSN -> 双击以配置我的数据源 -> 详细信息 -> 选项卡游标 -> 取消选中 [不缓存只进游标的结果] -> 单击好的
在游标操作后调用 select 语句时,我得到:命令不同步,您现在不能 运行 此命令。以下只是用于测试目的的存储过程的粗略片段。 如果它使用游标但没有 "SELECT" 语句,则一切正常。
CREATE PROCEDURE TestOne()
BEGIN
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
DECLARE cur_textCursor CURSOR FOR ( SELECT 1 );
OPEN cur_textCursor ;
IF done THEN
CLOSE textCursor ;
END IF;
SELECT 1;
END
Using MySQL ODBC 5.3 ANSI Driver
MySQL version 5.5
更新:
上述问题在我的 Sql ODBC 连接器 5.1 驱动程序中运行良好。
它仍然是我的 Sql ODBC 连接器 5.3 ANSI 驱动程序中的错误
这里有一个关于此问题的未解决错误: http://bugs.mysql.com/bug.php?id=71431
虽然您的案例在 Connector/ODBC 5.1 中有效,但在 5.2 和 5.3 版中您需要将附加查询包装在 BEGIN..END 块中。
这可能是一个可以修复的错误,但简单的解决方法是像上面那样包装它或使用 Connector/ODBC 5.1.
我的这个修复: ODBC -> 选项卡系统 DSN -> 双击以配置我的数据源 -> 详细信息 -> 选项卡游标 -> 取消选中 [不缓存只进游标的结果] -> 单击好的