MySQL C Connector / mysql_autocommit函数

时间:2015-03-13 15:04:56

标签: mysql c transactions autocommit

我在使用C语言中的mysql连接器时遇到了一些麻烦。

我正在将一些(工作)node.js脚本转换为独立的C应用程序,对于其中的一部分,我需要关闭自动提交,对数据库进行两次更新并提交。

但是,每次调用mysql_autocommit(mysql,0);它失败了 - 返回非零。我知道我的连接很好,因为我刚刚完成了一个查询,并且我正在对该查询的结果进行操作。

有趣的是MySQL日志是空的......这不是很有用。

任何想法如何找出问题是什么,或解决它? Node.js脚本也关闭了自动提交和[显然]工作。

提前致谢

1 个答案:

答案 0 :(得分:0)

我在C应用程序中以下列方式使用此函数:

int main( int argc, char **argv ) {
  my_bool reconnect = 1;

  ...

  dbconnect();  // my function (-> conn)

  mysql_options( conn, MYSQL_OPT_RECONNECT, &reconnect );

  ...

  exit (0);
}

然后这段代码切换出自动提交:

mysql_autocommit( conn, 0 );

然后转回:

mysql_commit( conn );
mysql_autocommit( conn, 1 );