在操作系统为WIN98第二版时,我在代码中调用CRECORDSET类打开数据库,每天第一次打开数据库,就报非法操作,退出程序,然后再运行程序,就不会报错了。比较妖!我在代码中调用了异常处理,可怎么也捕获不到这个错误。而在WIN 2000中,却没有这个问题!!我的代码如下:
try

    if (poscard.Open(AFX_DB_USE_DEFAULT_TYPE,tmpstr,CRecordset::none)==0)
   {
m_StatusBar.SetText("打开数据库失败!!",strlen  ("打开数据库失败!!"));
         m_StatusBar.ShowText();
m_ePsw.SetFocus();
return false;
   }
}
catch(CMemoryException *e3)
{
AfxMessageBox( "非法操作,请按退出键!",MB_ICONEXCLAMATION );
return false;}
catch( CDBException *e2)
{
AfxMessageBox( e2->m_strError,MB_ICONEXCLAMATION );
return false;
}
catch(CResourceException *e4)
{
AfxMessageBox( "无法找到资源,请按退出键!",MB_ICONEXCLAMATION );
return false;}
catch(CUserException *e5)
{
AfxMessageBox( "非法用户,请按退出键!",MB_ICONEXCLAMATION );
return false;
}
poscard 是继承CRECORDSET类的。