单独使用MFC CRecord类进行数据库操作(原创心得)

博主在开发中用VC++ 6.0和ODBC操作数据库,使用CRecordset类建立对象。连接数据库、打开记录集及原有函数使用正常,但使用Delete()函数报错。经跟踪发现问题与SetFieldNull()函数判断及RFX有关,后续需补上RFX部分并完成测试更新文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在开发中使用VC++ 6.0和ODBC方式对数据库进行操作时,为了提高灵活性,所以直接使用了CRecordset类建立对象。在使用中连接数据库,打开记录集都没有问题,而且CRecordset中的MoveFirst/MoveNext/MovePrev/MoveLast等原有函数也都可以正常使用,但是当我想使用CRecordset类的Delete()函数进行操作的时候就会报错Assert Failed.经过Tracer发现问题出在SetFieldNull()函数中的判断
if(m_nFields <0)
    ASSERT(FALSE);
经过跟踪发现,使用MFC Classwizard进行派生时会在构造函数中自动对m_nFields进行赋值,但是当我们自由使用CRecordset的时候就没有了这一部,当我显示的对m_nFields赋值时仍然会报错,是关于RFX的错误。没有使用关于CRecordset类的Update操作,但是看到其他朋友写的文章应该是select是不会有问题的。看来自己要把RFX那部分也补上了,后者由于时间关系没有完成。完成测试会更新该文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值