ACCESS 频繁打开关闭后 打开失败
_ConnectionPtr m_pConnection;
m_pConnection.CreateInstance(__uuidof(Connection));
try
{
CString connsStr(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="));
connsStr += m_dbName;
m_pConnection->Open((_bstr_t)connsStr,_T(""),_T(""),adModeUnknown);
}
catch(_com_error e)
{ //错误有一个线程,到一定的条件就调用此函数,在Access存贮20M内容左右,
运行56分钟后,会出现打开失败。此后就一直是打开失败
_bstr_t bstrDescription(e.Description());
CString strErro=(LPCSTR)e.Description();
CDebug::ShowDetailMessage(_T("open DB failed!"));
CDebug::ShowDetailMessage(strErro.GetBuffer());
strErro.ReleaseBuffer();
strErro = (LPCSTR)e.ErrorMessage();
CDebug::ShowDetailMessage(strErro.GetBuffer());
if(m_pConnection->State)
{
m_pConnection->Close();
m_pConnection.Release();
}
m_pConnection= NULL;
return FALSE;
}
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance(__uuidof(Recordset));
try
{
CString sql(_T("SELECT * FROM "));
sql = sql + m_dbTable;
m_pRecordset->Open((_variant_t)sql, // 查询DemoTable表中所有字段
m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error e)
{
_bstr_t bstrDescription(e.Description());
CString err = (LPCSTR)e.Description();
CDebug::ShowDetailMessage(err.GetBuffer());
return FALSE;
}
try
{
//插入数据部分省略
m_pRecordset->Update();
}
catch(_com_error e)
{
_bstr_t bstrDescription(e.Description());
CString err = (LPCSTR)e.Description();
CDebug::ShowDetailMessage(err.GetBuffer());
}
m_pRecordset->Close();
m_pRecordset.Release();
m_pRecordset = NULL;
//关闭数据库
if(m_pConnection->State)
{
m_pConnection->Close();
m_pConnection.Release();
}
m_pConnection= NULL;
return TRUE;//错误有一个线程,到一定的条件就调用此函数,在Access存贮20M内容左右,即运行56分钟后,会出现打开失败。此后就一直是打开失败 未指定的错误
...全文
相关推荐
压缩、修复ACCESS数据库
对ACCESS数据库进行压缩 修复,有代码
写IFIX 实时数据到ACCESS 步骤
ifix 写IFIX 实时数据到ACCESS 步骤 写IFIX 实时数据到ACCESS 步骤
VC ++与Access连接及其简单操作的实现
主要介绍ADO的基本概念,以及在W indows2000下以VC ++为开发环境介绍一种在<br>应用程序(MFC)中使用ADO来进行数据库应用程序的开发,并说明动态加载ADO数据源<br>Access的方法和给出了相关的程序代码。
unity访问Access数据库demo
内含一例程、访问有关的dll、处理 \[Microsoft\]\[ODBC 驱动程序管理器\] 未发现数据源名称并且未指定默认驱动程序错误时的程序。
Access数据库自动压缩修复源码
Access使用时间比较长后,会产生大量碎片空间,导致数据库越来越来,如果有执行异常还可能出现不能再删除记录的错误,通过程序可以将数据库压缩修复(需要在数据库未被其他程序打开的状态下)。


数据库
