在操作系统为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类的。
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类的。
解决方案 »
- 怎么在状态栏显示坐标和经纬度
- CWebBrowser2 如何禁止右键...如何判断网页是否加载完成?
- 100分求一个简单的实现读、改、写 BMP位图的小例子,要源程序
- 请问CRecordSet类
- 关于MyCSDN - CSDN资料库开发的一点说法
- 求求你们了
- 请问,a,b,c都为整数,a AND b = c ,现在知道c和a,如何才可以得到b?
- 程序运行时,在对话框中动态添加按钮是哪个函数了,急
- vc中的N个问题。只要回答对本人有益处就给分。
- 如何将一个STATIC变量变成作用范围局限在线程中?精彩回答还可再加分!
- csdn 宣言 (csdn的新客旧客都来看一下吧)
- 关于声音、录音控制选项(就是系统托盘的声音图标)的深入讨论
不過我同事有過類似得問題.可能是你的Access版本太低.所以導致了,打開文件的錯誤.
你到
http://www.microsoft.com/data/download_270RTM.htm
下載升級.看看