遇到的错误:unhandled exception in *.exe (MFC42D.DLL):0xC0000005:Access Violation
其中*.exe是在工程中生成的可执行文件名。
我是在使用VC+ODBC访问Access数据库方式写一个小软件时遇到的这个错误,
我向数据库中添加记录时会报此错,
但奇怪的是记录都可以添加成功。
Google了很久,网友们对此类问题的一般解释都是:
指针未实例化,对内存的非法访问等。
我单步时将注意力放在涉及到的指针上,未果。
后来继续Google,终于找到了在http://hi.baidu.com/snacky/blog/item/658fd2545de6b55ed009063e.html有们仁兄遇到的是跟我一模一样的问题,
按他的方法果然解决了。
现引复述如下:
在Access中使用“日期/时间”类型时,若采用ODBC数据源+CRecordset记录集方式,在继承自CRecordset的类的构造函数中不会自动为生成的对应“日期/时间”类型的CTime成员变量做初始化,手工完成这一动作方法为,在继承自CRecordset类的类的构造函数中加上如下一句: m_time=CTime::GetCurrentTime();
其中m_time为记录集类中对应你数据库中的“日期/时间”类型的变量。