mysql:12606
From: Keiji Nagasako <Keiji Nagasako <keiji0@xxxxxxxxxx>>
Date: Sat, 24 Dec 2005 10:42:59 +0900
Subject: [mysql 12606] C APIで'SELECT文'を含むストアドプロシージャのレコード獲得方法について
はじめまして、森と申します。 MySQL 5.0.17で'SELECT文'を含むストアドプロシージャを、 C APIでコールすると一回目は成功するのですが、2回目をコールすると "2013: Lost connection to MySQL server during query"と、 エラーが起ります。 * プロシージャ Delimiter ;; CREATE PROCEDURE a () BEGIN SELECT 'abc'; END;; * C source #include <stdio.h> #include <mysql.h> int main () { MYSQL mysql; MYSQL_ROW row; MYSQL_RES *result; mysql_init(&mysql); mysql_real_connect(&mysql, "localhost", "root", NULL, "test", 0, NULL, CLIENT_MULTI_STATEMENTS); if (mysql_query(&mysql, "CALL a()") || !(result = mysql_store_result(&mysql))) { printf("Error 1: %d %s\n", mysql_errno(&mysql), mysql_error(&mysql)); return 1; } else { while (row = mysql_fetch_row(result)) puts(row[0]); mysql_free_result(result); } // ここでエラーが起る if (mysql_query(&mysql, "CALL a()") || !(result = mysql_store_result(&mysql))) { printf("Error 2: %d %s\n", mysql_errno(&mysql), mysql_error(&mysql)); return 1; } else { while (row = mysql_fetch_row(result)) puts(row[0]); mysql_free_result(result); } mysql_close(&mysql); return 0; } コンパイル -> 実行 -> abc Error 2: 2013 Lost connection to MySQL server during query はじめのクエリのレコードは獲得出来ているみたいですが。 2回目のクエリのエラーの原因はなんでしょうか? コマンドラインのMySQLクライアントは何度発行しても問題ないので、 上記のソースがおかしいのでしょうか? よろしくお願いします。 環境 os: Mac OS X 10.4.3 mysql: 5.0.17
-> 12606 2005-12-24 10:42 [Keiji Nagasako <keij] C APIで'SELECT文'を含むストアドプロシージャのレコード獲得方法について 12607 2005-12-24 14:01 ┣[柳町 洋光 <hiromits] 新しいメールアドレスで、このMLに参加するには? 12608 2005-12-24 16:12 ┃┗[とみたまさひろ <tomm] 12609 2005-12-25 18:17 ┗[Keiji Nagasako <keij]