高手过来改进 下面那段代码用ado操作删除access中的记录时候。删除上千条记录。access大小没变法哟,该怎么解决
高手过来改进 下面那段代码用ado操作删除access中的记录时候。删除上千条记录。access大小没变法哟
bool DbCmdOp(CString sql)
{
//_variant_t RecordsAffected;
try
{
m_gcmd-> CommandText = _bstr_t(sql);
m_gcmd-> CommandType=adCmdText;
m_gcmd-> Execute(NULL,NULL,adCmdText);
//全局的command命令。已经初始化
}
catch(_com_error e)///捕捉异常
{
return false;
}
return true;
}
UINT DataBaseThead(LPVOID lpParam)
{
for(vi=vec.begin();vi!=vec.end();vi++)
{
DbCmdOp((CString)*vi);
}
return 0;
}
代码是已经执行好了。但是用command操作删除。 access就是没减小。
------解决方案--------------------
删除只是标记,最后得压缩的.
你自己去搜代码吧.
------解决方案--------------------
你增加删除一个字节,都要改变文件的大小,做数据库的人就成了白吃了!
增加删除文件大小是像台阶一样的折线,不是平滑的曲线。
编译生成的exe程序大小也是这样。
bool DbCmdOp(CString sql)
{
//_variant_t RecordsAffected;
try
{
m_gcmd-> CommandText = _bstr_t(sql);
m_gcmd-> CommandType=adCmdText;
m_gcmd-> Execute(NULL,NULL,adCmdText);
//全局的command命令。已经初始化
}
catch(_com_error e)///捕捉异常
{
return false;
}
return true;
}
UINT DataBaseThead(LPVOID lpParam)
{
for(vi=vec.begin();vi!=vec.end();vi++)
{
DbCmdOp((CString)*vi);
}
return 0;
}
代码是已经执行好了。但是用command操作删除。 access就是没减小。
------解决方案--------------------
删除只是标记,最后得压缩的.
你自己去搜代码吧.
------解决方案--------------------
你增加删除一个字节,都要改变文件的大小,做数据库的人就成了白吃了!
增加删除文件大小是像台阶一样的折线,不是平滑的曲线。
编译生成的exe程序大小也是这样。