哥们 你的access怎么压缩的?

suanl 2013-12-19 02:21:38
?????????????????????
...全文
1099 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2013-12-19
  • 打赏
  • 举报
回复
关闭数据库连接,然后:
BOOL __stdcall CrnCompactMDB(LPCSTR lpMdbFile, LPCSTR lpOldPwd, LPCSTR lpNewPwd)
{
	char szPath[MAX_PATH] = { 0 };
	::GetTempPathA(MAX_PATH, szPath);
	char szTmpFile[MAX_PATH] = { 0 };
	::GetTempFileNameA(szPath, "ccm", 0, szTmpFile);

	char szOldProvide[512] = { 0 }, szNewProvide[512] = { 0 };

	sprintf(szOldProvide,
			"Provider=Microsoft.Jet.OLEDB.4.0;"
			"Data Source=%s;"
			"Jet OLEDB:Database Password=%s",
			lpMdbFile, lpOldPwd);

	sprintf(szNewProvide,
			"Provider=Microsoft.Jet.OLEDB.4.0;"
			"Data Source=%s;"
			"Jet OLEDB:Database Password=%s",
			szTmpFile, lpNewPwd);

	BOOL bResult = FALSE;

	Variant vAdoObj;

	try
	{
		if (::PathFileExistsA(szTmpFile))
			::DeleteFileA(szTmpFile);

		vAdoObj = Variant::CreateObject("JRO.JetEngine");
		vAdoObj.OleProcedure("CompactDatabase", WideString(szOldProvide), WideString(szNewProvide));

		if (::PathFileExistsA(lpMdbFile))
			::DeleteFileA(lpMdbFile);

		::MoveFileA(szTmpFile, lpMdbFile);

		bResult = TRUE;
	}
	__finally
	{
		vAdoObj.Clear();
		vAdoObj = Unassigned;
	}

    return bResult;
}

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧