我正在使用 CODBCRecordset(CodeProject 上的一个类)在具有 39 列的表中查找单个记录。如果没有找到记录,那么调用 CRecordset::Open 就可以了。如果记录与条件匹配,则在调用 CRecordset::Open 时会出现内存不足异常。我正在选择查询中的所有列(如果我将查询更改为仅选择具有相同 where 子句的列之一,那么也不例外)。
我认为这是因为 CRecordset 中的一些限制,但我找不到任何告诉我任何限制的信息。该表只有 39 列。
有没有人遇到过这个问题?如果是这样,您是否有解决方法/解决方案?
这是一个使用 Visual Studio 6.0 的 MFC 项目,如果它有什么不同的话。
这是查询(此处格式化,因此将在没有滚动条的情况下显示):
选择`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`、 `修改日期` 来自“参与者” WHERE `member_id` = '27F7D0982978B470C5CF94B1B833CC93F997EE23'
复制并粘贴到我的查询浏览器中只会给我一个结果。
更多信息:
注释掉 select 语句中除 id 之外的每一列。运行查询,没有例外。
然后我系统地检查并取消注释每一列,一次一个,并在每次取消注释之间重新运行查询。
当我取消注释评论列时,我得到了错误。
这被定义如下(使用 MySQL): LONGTEXT