CODBCRecordset (CodeProject にあるクラス) を使用して、39 列のテーブルで単一のレコードを検索しています。レコードが見つからない場合は、CRecordset::Open の呼び出しで問題ありません。レコードが条件に一致する場合、CRecordset::Open が呼び出されたときにメモリ不足の例外が発生します。クエリ内のすべての列を選択しています (同じ where 句を持つ列の 1 つだけを選択するようにクエリを変更すると、例外はありません)。
これはCRecordsetの制限によるものだと思いますが、制限について教えてくれるものは何も見つかりません。テーブルには 39 列しかありません。
誰かがこの問題に遭遇しましたか? もしそうなら、あなたは回避策/解決策を持っていますか?
これは、Visual Studio 6.0 を使用する MFC プロジェクトです。
クエリは次のとおりです (ここでフォーマットされているため、スクロールバーなしで表示されます)。
SELECT `id`, `member_id`, `member_id_last_four`, `card_number`, `first_name`, `mi`, `last_name`, `participant_title_id`, `category_id`, `gender`, `date_of_birth`, `address_line_1`, `address_line_2`, `city`, `state`, `zip`, `phone`, `work_phone`, `mobile_phone`, `fax`, `email`, `emergency_name`, `emergency_phone`, `job_title`, `mail_code`, `comments`, `contract_unit`, `contract_length`, `start_date`, `end_date`, `head_of_household`, `parent_id`, `added_by`, `im_active`, `ct_active`, `organization`, `allow_members`, `organization_category_id`, `変更日` FROM `参加者` WHERE `member_id` = '27F7D0982978B470C5CF94B1B833CC93F997EE23'
コピーしてクエリ ブラウザに貼り付けても、1 つの結果しか得られません。
より詳しい情報:
id を除く select ステートメントの各列をコメントアウトしました。クエリを実行しましたが、例外はありませんでした。
次に、体系的に各列を 1 つずつ調べてコメントを外し、コメントを外すたびにクエリを再実行しました。
コメント欄のコメントを外すと、エラーが発生します。
これは次のように定義されます (MySQL を使用): LONGTEXT