[前][次][番号順一覧][スレッド一覧]

mysql:4940

From: <mizuki-yamamoto@xxxxxxxxxx>
Date: Thu, 17 Jan 2002 11:50:03 +0900
Subject: [mysql 04940] MYSQL C API 「 mysql_use_result 」について

私は、山本と申します。

つぎの事象につきまして、どなたかご存知でしたら、教えてください。

状況としては、まずmysql_real_connectで、2つのコネクションを作成し
ています。
片方のコネクションであるテーブル(ここではTABLE_Aとします)を検索して
います。
そのTABLE_AはBLOB型を含んだ1レコードサイズの大きいもので、クライ
アント処理にするのは
適さないため、検索時、mysql_use_resultを使用してます。
その検索1レコードのカレント行をローカル変数に読み込みその値を変更し、別コネ
クションでそのレコードを
変更した値(ローカル変数から)でUPDATEをかけるという処理を最終抽出レ
コードまでループする処理です。

この処理を実際に実行してみたところ、ある件数まで(ここでいう件数とは検索条件
にマッチする件数)
はうまくいくのですが、その件数を超えると実行処理自体は正常終了で返してくるの
ですが、実際は
検索されるはずの件数より少ない回数のループで終了してしまうという事象がおきて
しまうのです。

例)上記処理をTABLE_Aから100件抽出するようなSQLを発行した場合。
        検索される件数・・・100件、UPDATEされる件数・・・100件
  上記処理をTABLE_Aから30000件抽出するようなSQLを発行した場合。
   検索される件数・・・200件、UPDATEされる件数・・・200件
   (このとき、whileのbreak条件として、mysql_fetch_rowがNULLに
なったらという指定をしています)

また、検索条件の正誤確認のためUPDATE部分のみコメントアウトして、走らせ
たところ、
正しくループカウンタは30000を刻んでいました。

mysql_use_resultは同一コネクションでは最終行まで結果を返したあと、
mysql_free_resultにて結果セットを
開放してからでないといけないとありますが、別コネクションを張ったとしても、そ
れに該当するのでしょうか?

ご存知の方いらっしゃいましたら、ご回答よろしくお願いいたします。 


[前][次][番号順一覧][スレッド一覧]

->    4940 2002-01-17 11:50 [<mizuki-yamamoto@xxx] MYSQL C API 「 mysql_use_result 」について
      4941 2002-01-17 14:22 ┗["goudo" <goudo@xxxxx]                                       
      4944 2002-01-17 14:52  ┗[<mizuki-yamamoto@xxx]