2015-03-13 83 views
0

我具有C.MySQL的C連接器/ mysql_autocommit功能

與MySQL連接器有點麻煩

我將一些(工作)的Node.js腳本到一個獨立的C應用程序,和用於一個部分我需要關閉自動提交,對數據庫進行兩次更新並提交。

但是,每次我調用mysql_autocommit(mysql,0);它失敗 - 返回非零。我知道我的連接是好的,因爲我剛剛完成了一個查詢,並且正在處理該查詢的結果。

有趣的是,MySQL日誌是空的......這不是很有幫助。

任何想法如何可能找出問題或解決它? Node.js腳本也關閉了自動提交和[顯然]工作。

在此先感謝

+0

i f它返回非零/失敗,然後檢查mysql_error()是爲什麼。 – 2015-03-13 15:07:15

+0

是的......我現在無法讓它失敗(在將代碼添加到打印的errno和消息到日誌之後......我很惱火,之前沒有添加)。 – Martin 2015-03-13 15:28:30

回答

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);  
+0

有趣的是,我沒有想過重新連接選項......我沒有設置。現在我想知道我的連接是否真的下降了。 – Martin 2015-03-13 15:42:38

+0

在這裏你可以閱讀更多關於這個:http://dev.mysql.com/doc/refman/5.0/en/auto-reconnect.html – dbndhjefj 2015-03-13 16:17:07