最近在开发中使用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那部分也补上了,后者由于时间关系没有完成。完成测试会更新该文档。
单独使用MFC CRecord类进行数据库操作(原创心得)
最新推荐文章于 2023-06-13 15:24:31 发布
博主在开发中用VC++ 6.0和ODBC操作数据库,使用CRecordset类建立对象。连接数据库、打开记录集及原有函数使用正常,但使用Delete()函数报错。经跟踪发现问题与SetFieldNull()函数判断及RFX有关,后续需补上RFX部分并完成测试更新文档。
1130

被折叠的 条评论
为什么被折叠?



