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]